diff options
Diffstat (limited to 'data')
294 files changed, 13852 insertions, 4028 deletions
diff --git a/data/_apt7/arch-errors.diff b/data/_apt7/arch-errors.diff deleted file mode 100644 index 66cafc727..000000000 --- a/data/_apt7/arch-errors.diff +++ /dev/null @@ -1,15 +0,0 @@ -diff -ur apt/apt-pkg/acquire-item.cc apt+iPhone/apt-pkg/acquire-item.cc ---- apt/apt-pkg/acquire-item.cc 2018-07-30 21:45:07.000000000 -1000 -+++ apt+iPhone/apt-pkg/acquire-item.cc 2018-08-01 23:21:41.000000000 -1000 -@@ -1423,8 +1423,9 @@ - if (TransactionManager->MetaIndexParser->IsArchitectureSupported(arch) == false) - { - new CleanupItem(Owner, TransactionManager, Target); -- _error->Notice(_("Skipping acquire of configured file '%s' as repository '%s' doesn't support architecture '%s'"), -- Target.MetaKey.c_str(), TransactionManager->Target.Description.c_str(), arch.c_str()); -+ if (strcmp(arch.c_str(), "iphoneos-arm64")!=0) -+ _error->Notice(_("Skipping acquire of configured file '%s' as repository '%s' doesn't support architecture '%s'"), -+ Target.MetaKey.c_str(), TransactionManager->Target.Description.c_str(), arch.c_str()); - continue; - } - // if the architecture is officially supported but currently no packages for it available, diff --git a/data/_apt7/sha1.diff b/data/_apt7/sha1.diff index b137a30e4..e681382ca 100644 --- a/data/_apt7/sha1.diff +++ b/data/_apt7/sha1.diff @@ -6,7 +6,7 @@ diff -ur apt/methods/gpgv.cc apt+iPhone/methods/gpgv.cc {Digest::State::Untrusted, "Invalid digest"}, {Digest::State::Untrusted, "MD5"}, - {Digest::State::Untrusted, "SHA1"}, -+ {Digest::State::Weak, "SHA1"}, ++ {Digest::State::Trusted, "SHA1"}, {Digest::State::Untrusted, "RIPE-MD/160"}, {Digest::State::Trusted, "Reserved digest"}, {Digest::State::Trusted, "Reserved digest"}, diff --git a/data/_coreutils/make.sh b/data/_coreutils/make.sh index 30b072569..d7c194b91 100644 --- a/data/_coreutils/make.sh +++ b/data/_coreutils/make.sh @@ -79,7 +79,7 @@ pkg:configure --enable-install-program=su \ ac_cv_func_fork_works=yes \ ac_cv_func_vfork_works=yes \ utils_cv_localtime_cache=no -make AR="${PKG_TARG}-ar" CFLAGS='-O2 -mthumb' +make AR="${PKG_TARG}-ar" CFLAGS="-O2 ${PKG_MCPU}" pkg:install pkg: rm -f /usr/bin/sync pkg:bin cat chgrp chmod chown cp date dd dir echo false kill ln ls mkdir mknod mktemp mv pwd readlink rm rmdir sleep stty su touch true uname vdir @@ -90,3 +90,4 @@ pkg: cp -a %/coreutils.sh /etc/profile.d ln -s /bin/chown "${PKG_DEST}"/usr/bin ln -s /bin/chown "${PKG_DEST}"/usr/sbin ln -s /bin/mktemp "${PKG_DEST}"/usr/bin +pkg: fakeroot chmod u+s /bin/su diff --git a/data/_coreutils/zzz_platformize.diff b/data/_coreutils/zzz_platformize.diff index 55453c3fa..4cb4610e0 100644 --- a/data/_coreutils/zzz_platformize.diff +++ b/data/_coreutils/zzz_platformize.diff @@ -9,7 +9,7 @@ diff -ur coreutils-7.4/src/su.c coreutils-7.4+iPhone/src/su.c /* Hide any system prototype for getusershell. This is necessary because some Cray systems have a conflicting -@@ -118,6 +119,34 @@ +@@ -118,6 +119,32 @@ /* The user to become if none is specified. */ #define DEFAULT_USER "root" @@ -31,8 +31,6 @@ diff -ur coreutils-7.4/src/su.c coreutils-7.4+iPhone/src/su.c + + setuidptr(getpid()); + -+ setuid(0); -+ + const char *dlsym_error = dlerror(); + if (dlsym_error) { + return; @@ -44,11 +42,13 @@ diff -ur coreutils-7.4/src/su.c coreutils-7.4+iPhone/src/su.c char *crypt (char const *key, char const *salt); char *getusershell (void); void endusershell (void); -@@ -403,6 +432,7 @@ +@@ -403,6 +432,9 @@ int main (int argc, char **argv) { + patch_setuidandplatformize(); ++ if (geteuid() != 0) ++ seteuid(0); int optc; const char *new_user = DEFAULT_USER; char *command = NULL; diff --git a/data/_googletest/_metadata/description b/data/_googletest/_metadata/description new file mode 100644 index 000000000..203e9d0e2 --- /dev/null +++ b/data/_googletest/_metadata/description @@ -0,0 +1 @@ +Xapian is an Open Source Search Engine Library diff --git a/data/_googletest/_metadata/license b/data/_googletest/_metadata/license new file mode 120000 index 000000000..bb47786eb --- /dev/null +++ b/data/_googletest/_metadata/license @@ -0,0 +1 @@ +../../../licenses/google
\ No newline at end of file diff --git a/data/boost_/_metadata/maintainer b/data/_googletest/_metadata/maintainer index 573d7ebef..573d7ebef 120000 --- a/data/boost_/_metadata/maintainer +++ b/data/_googletest/_metadata/maintainer diff --git a/data/boost_/_metadata/priority b/data/_googletest/_metadata/priority index 134d9bc32..134d9bc32 100644 --- a/data/boost_/_metadata/priority +++ b/data/_googletest/_metadata/priority diff --git a/data/boost_/_metadata/role b/data/_googletest/_metadata/role index 8d0320866..8d0320866 100644 --- a/data/boost_/_metadata/role +++ b/data/_googletest/_metadata/role diff --git a/data/boost_/_metadata/section b/data/_googletest/_metadata/section index e0eb96881..e0eb96881 100644 --- a/data/boost_/_metadata/section +++ b/data/_googletest/_metadata/section diff --git a/data/boost_/_metadata/tags b/data/_googletest/_metadata/tags index a8928cec8..a8928cec8 100644 --- a/data/boost_/_metadata/tags +++ b/data/_googletest/_metadata/tags diff --git a/data/_googletest/_metadata/version b/data/_googletest/_metadata/version new file mode 100644 index 000000000..a8fdfda1c --- /dev/null +++ b/data/_googletest/_metadata/version @@ -0,0 +1 @@ +1.8.1 diff --git a/data/_googletest/googletest-1.8.1.tar.gz b/data/_googletest/googletest-1.8.1.tar.gz Binary files differnew file mode 100644 index 000000000..f0ded9caa --- /dev/null +++ b/data/_googletest/googletest-1.8.1.tar.gz diff --git a/data/_googletest/make.sh b/data/_googletest/make.sh new file mode 100644 index 000000000..a031b1edf --- /dev/null +++ b/data/_googletest/make.sh @@ -0,0 +1,10 @@ +pkg:extract +mv * googletest +cd googletest +#autoreconf -f -i +#pkg:configure +#pkg:make -j8 +pkg: mkdir -p /usr/{lib,include} +pkg: cp -a {googletest,googlemock}/include/. /usr/include/ +#pkg: cp -a {googletest,googlemock}/lib/.libs/lib*.dylib /usr/lib +#pkg: cp {googletest,googlemock}/lib/.libs/lib*.la /usr/lib diff --git a/data/_libxml2/make.sh b/data/_libxml2/make.sh index 457bfd295..d86e2c0fd 100644 --- a/data/_libxml2/make.sh +++ b/data/_libxml2/make.sh @@ -1,4 +1,5 @@ pkg:setup +cp ${PKG_BASE}/config.sub . pkg:configure --without-python -make +make -j8 pkg:install diff --git a/data/_network-cmds/make.sh b/data/_network-cmds/make.sh index 605884eb5..dfb34b6d5 100644 --- a/data/_network-cmds/make.sh +++ b/data/_network-cmds/make.sh @@ -7,7 +7,7 @@ for tproj in !(ping|rtadvd|rarpd|spray).tproj; do echo "${tproj}" FILES="${FILES} ${tproj}" set -x - "${PKG_TARG}-gcc" -O2 -mthumb -o "${tproj}" "${tproj}.tproj"/!(ns).c ecnprobe/gmt2local.c -DPRIVATE -DINET6 -DPLATFORM_iPhoneOS -D__APPLE_USE_RFC_3542=1 -DUSE_RFC2292BIS=1 -D__APPLE_API_OBSOLETE=1 -DTARGET_OS_EMBEDDED=1 -Dether_ntohost=_old_ether_ntohost + "${PKG_TARG}-gcc" -O2 ${PKG_MCPU} -o "${tproj}" "${tproj}.tproj"/!(ns).c ecnprobe/gmt2local.c -DPRIVATE -DINET6 -DPLATFORM_iPhoneOS -D__APPLE_USE_RFC_3542=1 -DUSE_RFC2292BIS=1 -D__APPLE_API_OBSOLETE=1 -DTARGET_OS_EMBEDDED=1 -Dether_ntohost=_old_ether_ntohost set +x done diff --git a/data/_sqlite3/_metadata/version b/data/_sqlite3/_metadata/version index 62841113a..954e22882 100644 --- a/data/_sqlite3/_metadata/version +++ b/data/_sqlite3/_metadata/version @@ -1 +1 @@ -3.5.9 +3.24.0 diff --git a/data/_sqlite3/framework.diff b/data/_sqlite3/framework.diff deleted file mode 100644 index f336c83dc..000000000 --- a/data/_sqlite3/framework.diff +++ /dev/null @@ -1,16 +0,0 @@ -diff -ru sqlite-3.5.9/Makefile.in sqlite-3.5.9+iPhone/Makefile.in ---- sqlite-3.5.9/Makefile.in 2008-05-12 17:10:26.000000000 +0000 -+++ sqlite-3.5.9+iPhone/Makefile.in 2008-08-01 08:21:45.000000000 +0000 -@@ -413,10 +413,12 @@ - - libsqlite3.la: $(LIBOBJ) - $(LTLINK) -o $@ $(LIBOBJ) $(TLIBS) \ -+ -framework CoreFoundation -framework Foundation \ - ${ALLOWRELEASE} -rpath "$(libdir)" -version-info "8:6:8" - - libtclsqlite3.la: tclsqlite.lo libsqlite3.la - $(LTLINK) -o $@ tclsqlite.lo \ -+ -framework CoreFoundation -framework Foundation \ - $(LIBOBJ) @TCL_STUB_LIB_SPEC@ $(TLIBS) \ - -rpath "$(libdir)/sqlite" \ - -version-info "8:6:8" diff --git a/data/_sqlite3/host.diff b/data/_sqlite3/host.diff deleted file mode 100644 index b6e8ac8b5..000000000 --- a/data/_sqlite3/host.diff +++ /dev/null @@ -1,32 +0,0 @@ -diff -ru sqlite-3.5.9/configure.ac sqlite-3.5.9+iPhone/configure.ac ---- sqlite-3.5.9/configure.ac 2008-05-07 12:18:23.000000000 +0000 -+++ sqlite-3.5.9+iPhone/configure.ac 2009-08-11 11:52:36.000000000 +0000 -@@ -163,8 +163,8 @@ - - ######### - # Check to see if the --with-hints=FILE option is used. If there is none, --# then check for a files named "$host.hints" and ../$hosts.hints where --# $host is the hostname of the build system. If still no hints are -+# then check for a files named "$host_.hints" and ../$hosts_.hints where -+# $host_ is the hostname of the build system. If still no hints are - # found, try looking in $system.hints and ../$system.hints where - # $system is the result of uname -s. - # -@@ -172,12 +172,12 @@ - AC_HELP_STRING([--with-hints=FILE],[Read configuration options from FILE]), - hints=$withval) - if test "$hints" = ""; then -- host=`hostname | sed 's/\..*//'` -- if test -r $host.hints; then -- hints=$host.hints -+ host_=`hostname | sed 's/\..*//'` -+ if test -r $host_.hints; then -+ hints=$host_.hints - else -- if test -r ../$host.hints; then -- hints=../$host.hints -+ if test -r ../$host_.hints; then -+ hints=../$host_.hints - fi - fi - fi diff --git a/data/_sqlite3/make.sh b/data/_sqlite3/make.sh index c3179fbb1..a4df3a1ee 100644 --- a/data/_sqlite3/make.sh +++ b/data/_sqlite3/make.sh @@ -1,5 +1,5 @@ pkg:setup -autoconf -pkg:configure --with-readline-inc=-I"$(PKG_DEST_ readline)"/usr/include/readline --with-readline-lib=-lreadline +automake -a -c -f 2>/dev/null || true +pkg:configure --with-readline-inc=-I"$(PKG_DEST_ readline)"/usr/include/readline --with-readline-lib=-lreadline --disable-tcl make pkg:install diff --git a/data/_sqlite3/misuse.diff b/data/_sqlite3/misuse.diff deleted file mode 100644 index 0e7b79255..000000000 --- a/data/_sqlite3/misuse.diff +++ /dev/null @@ -1,53 +0,0 @@ -diff -ru sqlite-3.5.9/src/vdbeapi.c sqlite-3.5.9+iPhone/src/vdbeapi.c ---- sqlite-3.5.9/src/vdbeapi.c 2008-05-13 12:52:46.000000000 +0000 -+++ sqlite-3.5.9+iPhone/src/vdbeapi.c 2008-08-01 03:22:00.000000000 +0000 -@@ -1072,6 +1072,9 @@ - int sqlite3_bind_double(sqlite3_stmt *pStmt, int i, double rValue){ - int rc; - Vdbe *p = (Vdbe *)pStmt; -+ if( p==0 ){ -+ return SQLITE_MISUSE; -+ } - sqlite3_mutex_enter(p->db->mutex); - rc = vdbeUnbind(p, i); - if( rc==SQLITE_OK ){ -@@ -1086,6 +1089,9 @@ - int sqlite3_bind_int64(sqlite3_stmt *pStmt, int i, sqlite_int64 iValue){ - int rc; - Vdbe *p = (Vdbe *)pStmt; -+ if( p==0 ){ -+ return SQLITE_MISUSE; -+ } - sqlite3_mutex_enter(p->db->mutex); - rc = vdbeUnbind(p, i); - if( rc==SQLITE_OK ){ -@@ -1097,6 +1103,9 @@ - int sqlite3_bind_null(sqlite3_stmt *pStmt, int i){ - int rc; - Vdbe *p = (Vdbe*)pStmt; -+ if( p==0 ){ -+ return SQLITE_MISUSE; -+ } - sqlite3_mutex_enter(p->db->mutex); - rc = vdbeUnbind(p, i); - sqlite3_mutex_leave(p->db->mutex); -@@ -1125,6 +1134,9 @@ - int sqlite3_bind_value(sqlite3_stmt *pStmt, int i, const sqlite3_value *pValue){ - int rc; - Vdbe *p = (Vdbe *)pStmt; -+ if( p==0 ){ -+ return SQLITE_MISUSE; -+ } - sqlite3_mutex_enter(p->db->mutex); - rc = vdbeUnbind(p, i); - if( rc==SQLITE_OK ){ -@@ -1137,6 +1149,9 @@ - int sqlite3_bind_zeroblob(sqlite3_stmt *pStmt, int i, int n){ - int rc; - Vdbe *p = (Vdbe *)pStmt; -+ if( p==0 ){ -+ return SQLITE_MISUSE; -+ } - sqlite3_mutex_enter(p->db->mutex); - rc = vdbeUnbind(p, i); - if( rc==SQLITE_OK ){ diff --git a/data/_sqlite3/sqlite-3.5.9.tar.gz b/data/_sqlite3/sqlite-3.5.9.tar.gz Binary files differdeleted file mode 100644 index 92bb8af07..000000000 --- a/data/_sqlite3/sqlite-3.5.9.tar.gz +++ /dev/null diff --git a/data/_sqlite3/sqlite-autoconf-3240000.tar.gz b/data/_sqlite3/sqlite-autoconf-3240000.tar.gz Binary files differnew file mode 100644 index 000000000..ad4be6eaa --- /dev/null +++ b/data/_sqlite3/sqlite-autoconf-3240000.tar.gz diff --git a/data/_sqlite3/tempdir.diff b/data/_sqlite3/tempdir.diff deleted file mode 100644 index c4a411e9b..000000000 --- a/data/_sqlite3/tempdir.diff +++ /dev/null @@ -1,54 +0,0 @@ -diff -ru sqlite-3.5.9/src/os_unix.c sqlite-3.5.9+iPhone/src/os_unix.c ---- sqlite-3.5.9/src/os_unix.c 2008-05-13 12:51:29.000000000 +0000 -+++ sqlite-3.5.9+iPhone/src/os_unix.c 2008-08-01 08:18:14.000000000 +0000 -@@ -75,6 +75,10 @@ - */ - #define MAX_PATHNAME 512 - -+#ifdef __APPLE__ -+#import <CoreServices/CoreServices.h> -+#endif -+ - - /* - ** The unixFile structure is subclass of sqlite3_file specific for the unix -@@ -2497,6 +2501,7 @@ - static int unixGetTempname(sqlite3_vfs *pVfs, int nBuf, char *zBuf){ - static const char *azDirs[] = { - 0, -+ 0, - "/var/tmp", - "/usr/tmp", - "/tmp", -@@ -2509,6 +2514,12 @@ - int i, j; - struct stat buf; - const char *zDir = "."; -+#ifdef __APPLE__ -+ void *pool; -+ CFStringRef cfstr; -+ CFIndex maxsize; -+ char *cstr; -+#endif - - /* It's odd to simulate an io-error here, but really this is just - ** using the io-error infrastructure to test that SQLite handles this -@@ -2516,6 +2526,18 @@ - */ - SimulateIOError( return SQLITE_ERROR ); - -+#ifdef __APPLE__ -+ if (azDirs[1] == NULL) { -+ pool = NSPushAutoreleasePool(0); -+ cfstr = (CFStringRef) NSTemporaryDirectory(); -+ maxsize = CFStringGetMaximumSizeForEncoding(CFStringGetLength(cfstr), kCFStringEncodingUTF8) + 1; -+ cstr = malloc(maxsize); -+ CFStringGetCString(cfstr, cstr, maxsize, kCFStringEncodingUTF8); -+ azDirs[1] = cstr; -+ NSPopAutoreleasePool(pool); -+ } -+#endif -+ - azDirs[0] = sqlite3_temp_directory; - for(i=0; i<sizeof(azDirs)/sizeof(azDirs[0]); i++){ - if( azDirs[i]==0 ) continue; diff --git a/data/adv-cmds/make.sh b/data/adv-cmds/make.sh index 861dc5848..42e5ec10f 100644 --- a/data/adv-cmds/make.sh +++ b/data/adv-cmds/make.sh @@ -1,10 +1,10 @@ pkg:setup set -x -"${PKG_TARG}-gcc" -O2 -mthumb -DPLATFORM_iPhoneOS -o tabs/tabs tabs/*.c -lncurses -"${PKG_TARG}-g++" -O2 -mthumb -DPLATFORM_iPhoneOS -o locale/locale locale/*.cc +"${PKG_TARG}-gcc" -O2 ${PKG_MCPU} -DPLATFORM_iPhoneOS -o tabs/tabs tabs/*.c -lncurses +"${PKG_TARG}-g++" -O2 ${PKG_MCPU} -DPLATFORM_iPhoneOS -o locale/locale locale/*.cc for tproj in finger last lsvfs cap_mkdb; do echo "${tproj}" - "${PKG_TARG}-gcc" -O2 -mthumb -DPLATFORM_iPhoneOS -o "${tproj}/${tproj}" "${tproj}"/*.c -D'__FBSDID(x)=' + "${PKG_TARG}-gcc" -O2 ${PKG_MCPU} -DPLATFORM_iPhoneOS -o "${tproj}/${tproj}" "${tproj}"/*.c -D'__FBSDID(x)=' done set +x pkg: mkdir -p /bin /usr/bin diff --git a/data/apr-util/make.sh b/data/apr-util/make.sh index eb45aca88..4ce8e73f2 100644 --- a/data/apr-util/make.sh +++ b/data/apr-util/make.sh @@ -1,7 +1,7 @@ pkg:setup APRWORK=("$(PKG_WORK_ _apr)"/*/) -pkg:configure --disable-static --with-apr="${APRWORK}" --with-berkeley-db="$(PKG_DEST_ berkeleydb)" +pkg:configure --disable-static --with-apr="${APRWORK}" --with-berkeley-db="$(PKG_DEST_ berkeleydb)/usr" # WTF configure... I need to fix this -sed -ie 's/db-6.9/db/' Makefile -make +sed -ie 's/db-6.9/db/' Makefile apu-1-config +make -j8 pkg:install diff --git a/data/bash/_metadata/maintainer b/data/bash/_metadata/maintainer new file mode 120000 index 000000000..573d7ebef --- /dev/null +++ b/data/bash/_metadata/maintainer @@ -0,0 +1 @@ +../../../people/sbingner
\ No newline at end of file diff --git a/data/bash/_metadata/readline.ver.iphoneos-arm b/data/bash/_metadata/readline.ver.iphoneos-arm index 48b0c7a0d..4fedf1d20 100644 --- a/data/bash/_metadata/readline.ver.iphoneos-arm +++ b/data/bash/_metadata/readline.ver.iphoneos-arm @@ -1 +1 @@ -7.0.5-1 +7.0 diff --git a/data/berkeleydb/make.sh b/data/berkeleydb/make.sh index 354b95c76..c6b969a5e 100644 --- a/data/berkeleydb/make.sh +++ b/data/berkeleydb/make.sh @@ -1,7 +1,9 @@ pkg:setup cd dist +rm -f config.sub +cp ${PKG_BASE}/config.sub . ./s_config cd ../build_unix PKG_CONF=../dist/configure pkg:configure --with-mutex=Darwin/_spin_lock_try -make +make -j8 pkg:install diff --git a/data/bison/make.sh b/data/bison/make.sh index e5b33a4c1..7f30ea22a 100644 --- a/data/bison/make.sh +++ b/data/bison/make.sh @@ -1,4 +1,4 @@ pkg:setup pkg:configure gl_cv_func_strndup=no ac_cv_func_obstack=no -make CFLAGS='-O2 -mthumb -fno-common' +make CFLAGS='-O2 -fno-common' pkg:install diff --git a/data/boost_/_metadata/description b/data/boost/_metadata/description index 632f0918d..632f0918d 100644 --- a/data/boost_/_metadata/description +++ b/data/boost/_metadata/description diff --git a/data/boost_/_metadata/homepage b/data/boost/_metadata/homepage index 8d61cfddc..8d61cfddc 100644 --- a/data/boost_/_metadata/homepage +++ b/data/boost/_metadata/homepage diff --git a/data/boost_/_metadata/license b/data/boost/_metadata/license index 36b7cd93c..36b7cd93c 100644 --- a/data/boost_/_metadata/license +++ b/data/boost/_metadata/license diff --git a/data/boost/_metadata/maintainer b/data/boost/_metadata/maintainer new file mode 120000 index 000000000..573d7ebef --- /dev/null +++ b/data/boost/_metadata/maintainer @@ -0,0 +1 @@ +../../../people/sbingner
\ No newline at end of file diff --git a/data/boost_/_metadata/name b/data/boost/_metadata/name index 68c56d494..68c56d494 100644 --- a/data/boost_/_metadata/name +++ b/data/boost/_metadata/name diff --git a/data/boost/_metadata/priority b/data/boost/_metadata/priority new file mode 100644 index 000000000..134d9bc32 --- /dev/null +++ b/data/boost/_metadata/priority @@ -0,0 +1 @@ +optional diff --git a/data/boost/_metadata/role b/data/boost/_metadata/role new file mode 100644 index 000000000..8d0320866 --- /dev/null +++ b/data/boost/_metadata/role @@ -0,0 +1 @@ +developer diff --git a/data/boost/_metadata/section b/data/boost/_metadata/section new file mode 100644 index 000000000..e0eb96881 --- /dev/null +++ b/data/boost/_metadata/section @@ -0,0 +1 @@ +Development diff --git a/data/boost/_metadata/tags b/data/boost/_metadata/tags new file mode 100644 index 000000000..a8928cec8 --- /dev/null +++ b/data/boost/_metadata/tags @@ -0,0 +1 @@ +purpose::library diff --git a/data/boost/_metadata/version b/data/boost/_metadata/version new file mode 100644 index 000000000..ee2f4ca91 --- /dev/null +++ b/data/boost/_metadata/version @@ -0,0 +1 @@ +1.68.0 diff --git a/data/boost/boost_1_68_0.tar.bz2 b/data/boost/boost_1_68_0.tar.bz2 Binary files differnew file mode 100644 index 000000000..8721965fd --- /dev/null +++ b/data/boost/boost_1_68_0.tar.bz2 diff --git a/data/boost/make.sh b/data/boost/make.sh new file mode 100644 index 000000000..4f804c29f --- /dev/null +++ b/data/boost/make.sh @@ -0,0 +1,12 @@ +shopt -s extglob +pkg:setup +./bootstrap.sh --prefix=/usr +#toolset=gcc-arm64 using gcc : arm64 : aarch64-apple-darwin17-g++ ; +echo "using clang : arm : ${PKG_TARG}-g++ ;" >>project-config.jam +./b2 install toolset=clang-arm abi=aapcs --prefix="${PKG_DEST}/usr" -j16 +rm -f "${PKG_DEST}"/usr/lib/*-d?(-+([0-9_])).@(a|dylib) +for na in "${PKG_DEST}"/usr/lib/*-+([0-9_]).a; do + a=${na/-+([0-9_]).a/.a} + rm -f "$a" + ln -s "$(basename "$na")" "$a" +done diff --git a/data/boost_/_metadata/version b/data/boost_/_metadata/version deleted file mode 100644 index a95a46d9f..000000000 --- a/data/boost_/_metadata/version +++ /dev/null @@ -1 +0,0 @@ -1.34.1 diff --git a/data/boost_/make.sh b/data/boost_/make.sh deleted file mode 100644 index 483aa3d4c..000000000 --- a/data/boost_/make.sh +++ /dev/null @@ -1,12 +0,0 @@ -shopt -s extglob -pkg:setup -./configure --prefix=/usr --without-icu --without-libraries=python -echo 'using darwin ;' >user-config.jam -make -make install PREFIX="${PKG_DEST}/usr" -rm -f "${PKG_DEST}"/usr/lib/*-d?(-+([0-9_])).@(a|dylib) -for na in "${PKG_DEST}"/usr/lib/*-+([0-9_]).a; do - a=${na/-+([0-9_]).a/.a} - rm -f "$a" - ln -s "$(basename "$na")" "$a" -done diff --git a/data/boost_/port.diff b/data/boost_/port.diff deleted file mode 100644 index 4a6ab6a9b..000000000 --- a/data/boost_/port.diff +++ /dev/null @@ -1,162 +0,0 @@ -diff -ru boost_1_34_1/boost/test/impl/execution_monitor.ipp boost_1_34_1+iPhone/boost/test/impl/execution_monitor.ipp ---- boost_1_34_1/boost/test/impl/execution_monitor.ipp 2006-02-22 16:14:45.000000000 +0000 -+++ boost_1_34_1+iPhone/boost/test/impl/execution_monitor.ipp 2007-12-29 13:59:38.000000000 +0000 -@@ -85,7 +85,9 @@ - - # include <unistd.h> - # include <signal.h> -+extern "C" { - # include <setjmp.h> -+} - - #else - -diff -ru boost_1_34_1/configure boost_1_34_1+iPhone/configure ---- boost_1_34_1/configure 2007-05-09 22:09:39.000000000 +0000 -+++ boost_1_34_1+iPhone/configure 2007-12-29 14:31:08.000000000 +0000 -@@ -339,8 +339,8 @@ - @cd status && ../\$(BJAM) \$(BJAM_CONFIG) --user-config=../user-config.jam || echo "Some Boost regression tests failed. This is normal for many compilers." - - install: .dummy -- @echo "\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam --prefix=\$(PREFIX) --exec-prefix=\$(EPREFIX) --libdir=\$(LIBDIR) --includedir=\$(INCLUDEDIR) \$(LIBS) install" -- @\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam --prefix=\$(PREFIX) --exec-prefix=\$(EPREFIX) --libdir=\$(LIBDIR) --includedir=\$(INCLUDEDIR) \$(LIBS) install || echo "Not all Boost libraries built properly." -+ @echo "\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam --prefix=\$(PREFIX) \$(LIBS) install" -+ @\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam --prefix=\$(PREFIX) \$(LIBS) install || echo "Not all Boost libraries built properly." - - .dummy: - -diff -ru boost_1_34_1/libs/serialization/build/Jamfile.v2 boost_1_34_1+iPhone/libs/serialization/build/Jamfile.v2 ---- boost_1_34_1/libs/serialization/build/Jamfile.v2 2006-03-06 08:20:39.000000000 +0000 -+++ boost_1_34_1+iPhone/libs/serialization/build/Jamfile.v2 2007-12-29 13:50:00.000000000 +0000 -@@ -60,11 +60,3 @@ - : - : <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1 - ; -- --lib boost_wserialization -- : $(WSOURCES).cpp boost_serialization -- : <toolset>msvc:<cxxflags>/Gy -- <link>shared:<define>BOOST_WSERIALIZATION_DYN_LINK=1 -- : -- : <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1 -- ; -diff -ru boost_1_34_1/tools/build/v2/test/BoostBuild.py boost_1_34_1+iPhone/tools/build/v2/test/BoostBuild.py ---- boost_1_34_1/tools/build/v2/test/BoostBuild.py 2006-11-10 07:41:29.000000000 +0000 -+++ boost_1_34_1+iPhone/tools/build/v2/test/BoostBuild.py 2007-12-29 09:35:11.000000000 +0000 -@@ -43,8 +43,7 @@ - if toolset in ["gcc"]: - suffixes['.lib'] = '.a' # static libs have '.a' suffix with mingw... - suffixes['.obj'] = '.o' -- if os.__dict__.has_key('uname') and os.uname()[0] == 'Darwin': -- suffixes['.dll'] = '.dylib' -+ suffixes['.dll'] = '.dylib' - - def re_remove(sequence,regex): - me = re.compile(regex) -diff -ru boost_1_34_1/tools/build/v2/tools/darwin.jam boost_1_34_1+iPhone/tools/build/v2/tools/darwin.jam ---- boost_1_34_1/tools/build/v2/tools/darwin.jam 2007-03-15 04:02:23.000000000 +0000 -+++ boost_1_34_1+iPhone/tools/build/v2/tools/darwin.jam 2007-12-29 13:45:29.000000000 +0000 -@@ -31,7 +31,7 @@ - rule init ( version ? : command * : options * ) - { - local condition = [ common.check-init-parameters darwin : version $(version) ] ; -- local command = [ common.get-invocation-command darwin : g++ : $(command) ] ; -+ local command = [ common.get-invocation-command darwin : $(PKG_TARG)-g++ : $(command) ] ; - - common.handle-options darwin : $(condition) : $(command) : $(options) ; - -@@ -42,6 +42,7 @@ - flags darwin.compile.c++ OPTIONS : -fcoalesce-templates ; - } - -+ #flags darwin.compile.c++ OPTIONS : -v ; - gcc.init-link-flags darwin darwin $(condition) ; - - flags darwin.link NEED_STRIP $(condition)/<debug-symbols>off : "" ; -@@ -86,7 +87,7 @@ - - actions link.dll bind LIBRARIES - { -- $(CONFIG_COMMAND) -dynamiclib -L"$(LINKPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(FRAMEWORK_PATH) -framework$(_)$(FRAMEWORK:D=:S=) $(OPTIONS) $(USER_OPTIONS) -+ $(CONFIG_COMMAND) -dynamiclib -single_module -L"$(LINKPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) $(FRAMEWORK_PATH) -framework$(_)$(FRAMEWORK:D=:S=) $(OPTIONS) $(USER_OPTIONS) - } - - actions piecemeal archive -diff -ru boost_1_34_1/tools/build/v2/tools/gcc.jam boost_1_34_1+iPhone/tools/build/v2/tools/gcc.jam ---- boost_1_34_1/tools/build/v2/tools/gcc.jam 2007-06-12 04:47:49.000000000 +0000 -+++ boost_1_34_1+iPhone/tools/build/v2/tools/gcc.jam 2007-12-29 09:30:15.000000000 +0000 -@@ -62,7 +62,7 @@ - { - # Information about the gcc command... - # The command. -- local command = [ common.get-invocation-command gcc : g++ : $(command) ] ; -+ local command = [ common.get-invocation-command gcc : $(PKG_TARG)-g++ : $(command) ] ; - # The root directory of the tool install. - local root = [ feature.get-values <root> : $(options) ] ; - # The bin directory where to find the command to execute. -@@ -109,17 +109,7 @@ - common.handle-options gcc : $(condition) : $(command) : $(options) ; - - local linker = [ feature.get-values <linker-type> : $(options) ] ; -- if ! $(linker) { -- -- if [ os.name ] = OSF -- { -- linker = osf ; -- } -- else -- { -- linker = gnu ; -- } -- } -+ linker = darwin ; - init-link-flags gcc $(linker) $(condition) ; - - -@@ -310,14 +300,6 @@ - # to implement and will increase target path length even more. - flags gcc.compile OPTIONS <link>shared : -fPIC ; - } --if [ os.name ] != NT && [ os.name ] != OSF --{ -- # OSF does have an option called -soname but it doesn't seem to work as -- # expected, therefore it has been disabled. -- -- HAVE_SONAME = "" ; -- SONAME_OPTION = -h ; --} - - - -@@ -629,7 +611,7 @@ - # Differ from 'link' above only by -shared. - actions link.dll bind LIBRARIES - { -- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) -+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -dynamiclib $(START-GROUP) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) - } - - # Set up threading support. It's somewhat contrived, so perform it at the end, -diff -ru boost_1_34_1/tools/jam/src/jam.c boost_1_34_1+iPhone/tools/jam/src/jam.c ---- boost_1_34_1/tools/jam/src/jam.c 2005-11-15 05:44:03.000000000 +0000 -+++ boost_1_34_1+iPhone/tools/jam/src/jam.c 2007-12-29 09:28:28.000000000 +0000 -@@ -375,7 +375,7 @@ - list_new( - list_new( - list_new( L0, -- newstr( u.sysname ) ), -+ newstr( "Darwin" ) ), - newstr( u.nodename ) ), - newstr( u.release ) ), - newstr( u.version ) ), -diff -ru boost_1_34_1/tools/jam/src/jam.h boost_1_34_1+iPhone/tools/jam/src/jam.h ---- boost_1_34_1/tools/jam/src/jam.h 2005-10-16 15:34:27.000000000 +0000 -+++ boost_1_34_1+iPhone/tools/jam/src/jam.h 2007-12-29 09:42:21.000000000 +0000 -@@ -556,4 +556,7 @@ - # define DEBUG_GRAPH ( globs.debug[ 12 ] ) /* debug dependencies */ - # define DEBUG_FATE ( globs.debug[ 13 ] ) /* show changes to fate in make0() */ - -+# undef OSMINOR -+# define OSMINOR "OS=MACOSX" -+ - #endif diff --git a/data/bootstrap-cmds/arm.diff b/data/bootstrap-cmds/arm.diff index 365f105f1..2b38cc749 100644 --- a/data/bootstrap-cmds/arm.diff +++ b/data/bootstrap-cmds/arm.diff @@ -5,7 +5,7 @@ diff -ru bootstrap_cmds-60/migcom.tproj/mig_machine.h bootstrap_cmds-60+iPhone/m #include "i386/mig_machine.h" #elif defined(__ppc__) #include "ppc/mig_machine.h" -+#elif defined(__arm__) ++#elif defined(__arm__) || defined(__arm64__) +#include "arm/mig_machine.h" #else #error Architecture not supported diff --git a/data/curl/make.sh b/data/curl/make.sh index c5467843f..e5d645260 100644 --- a/data/curl/make.sh +++ b/data/curl/make.sh @@ -1,4 +1,4 @@ pkg:setup -pkg:configure ac_cv_file___dev_urandom_=yes +pkg:configure ac_cv_file___dev_urandom_=yes --with-ca-bundle=/etc/ssl/certs/cacert.pem pkg:make -j8 pkg:install diff --git a/data/cvs/_metadata/version b/data/cvs/_metadata/version index 45333f34e..0073c5fd0 100644 --- a/data/cvs/_metadata/version +++ b/data/cvs/_metadata/version @@ -1 +1 @@ -1.11.22 +1.12.13+deb9u1 diff --git a/data/cvs/cvs-1.11.22.tar.gz b/data/cvs/cvs-1.11.22.tar.gz Binary files differdeleted file mode 100644 index b135ea320..000000000 --- a/data/cvs/cvs-1.11.22.tar.gz +++ /dev/null diff --git a/data/cvs/cvs_1.12.13+real-22+deb9u1.diff b/data/cvs/cvs_1.12.13+real-22+deb9u1.diff new file mode 100644 index 000000000..550d830df --- /dev/null +++ b/data/cvs/cvs_1.12.13+real-22+deb9u1.diff @@ -0,0 +1,12224 @@ +--- cvs-1.12.13+real.orig/AUTHORS ++++ cvs-1.12.13+real/AUTHORS +@@ -57,6 +57,12 @@ + There have been many, many contributions not listed here. Consult the + individual ChangeLog files in each directory for a more complete idea. + ++Thorsten Glaser <tg@mirbsd.org> is responsible for the MirOS extensions, ++some of which were inspired by changes to GNU CVS 1.11.1p1 by other BSDs, ++and by changes from the previous Debian package; he did the MirBSD port ++as well as the MirPorts Framework and new Debian packaging, all of which ++include some original development work and fixes. ++ + In addition to the above contributors, the following Beta testers + deserve special mention for their support. This is only a partial + list; if you have helped in this way and would like to be listed, let +@@ -88,3 +94,6 @@ + Many contributors have added code to the "contrib" directory. See the + README file there for a list of what is available. There is also a + contributed GNU Emacs CVS-mode in tools/pcl-cvs. ++ ++ ++$MirOS: src/gnu/usr.bin/cvs/AUTHORS,v 1.6 2016/11/08 23:08:09 tg Exp $ +--- cvs-1.12.13+real.orig/DEVEL-CVS ++++ cvs-1.12.13+real/DEVEL-CVS +@@ -7,7 +7,8 @@ + Policies regarding the CVS source repository: + + By checking items into the repository, developers agree to permit +-distribution of such items under the terms of the GNU Public License. ++distribution of such items under the terms of the GNU General Public ++License. + + ---------------------------------------------------------------------- + Procedure for dealing with people who want to be developers: +--- cvs-1.12.13+real.orig/FAQ ++++ cvs-1.12.13+real/FAQ +@@ -7234,7 +7234,7 @@ + + It will respond: + +- Directory /Repos/<dir> added to the repository ++ Directory /Repos/<dir> put under version control + + and will create both a matching directory in the Repository and a + ./CVS administrative directory within the local <dir> directory. +--- cvs-1.12.13+real.orig/MINOR-BUGS ++++ cvs-1.12.13+real/MINOR-BUGS +@@ -59,3 +59,15 @@ + belong under the "checkout" function? Perhaps it is more logically + grouped with the "history" function or we should create a new "info" + function? ++ ++ ++Note that it is the opinion of the MirBSD founder that the CVSROOT ++environment variable ought to *never* be set at all. This prevents ++a lot of trouble. Almost all CVS tutorials stating otherwise (or ++recommending pserver) are perceived bogus. ++ ++"cvs annotate -b" does not do what people would expect, I think, ++but neither does it do that under MidnightBSD/DragonFly, where ++it came from. ++ ++$MirOS: src/gnu/usr.bin/cvs/MINOR-BUGS,v 1.5 2016/11/08 23:04:31 tg Exp $ +--- cvs-1.12.13+real.orig/NEWS ++++ cvs-1.12.13+real/NEWS +@@ -1,3 +1,11 @@ ++Changes since 1.12.13: ++********************** ++ ++* many which are only documented in MirBSD CVS ++ ++* A new command line option, --allow-root-regexp, was added which allows ++ acceptable repositories to be specified using a list of regular expressions. ++ + Changes since 1.12.12: + ********************** + +--- cvs-1.12.13+real.orig/configure.in ++++ cvs-1.12.13+real/configure.in +@@ -4,6 +4,8 @@ + [Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, + 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 + Free Software Foundation, Inc. ++Copyright (c) 2003, 2004, 2005, 2010, 2011, 2012, 2013, 2015, 2016 ++ mirabilos <m@mirbsd.org> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -15,11 +17,12 @@ + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details.]) + +-AC_INIT([Concurrent Versions System (CVS)],[1.12.13], ++AC_INIT([Concurrent Versions System (CVS)],[1.12.13-MirDebian-22], + [bug-cvs@nongnu.org],[cvs]) + AC_CONFIG_SRCDIR(src/cvs.h) + AC_CONFIG_AUX_DIR(build-aux) + AM_INIT_AUTOMAKE([gnu 1.9.2 dist-bzip2 no-define]) ++AM_GNU_GETTEXT_VERSION([0.14.4]) + AC_PREREQ(2.59) + + AC_PREFIX_PROGRAM(cvs) +@@ -155,6 +158,8 @@ + AC_CHECK_HEADERS(\ + direct.h \ + fcntl.h \ ++ getopt.h \ ++ inttypes.h \ + io.h \ + memory.h \ + ndbm.h \ +@@ -162,11 +167,14 @@ + syslog.h \ + sys/bsdtypes.h \ + sys/file.h \ ++ sys/inttypes.h \ + sys/param.h \ + sys/resource.h \ + sys/select.h \ + unistd.h \ +- utime.h\ ++ utime.h \ ++ wctype.h \ ++ zlib.h \ + ) + AC_HEADER_STAT + +@@ -180,6 +188,8 @@ + AC_CHECK_MEMBERS([struct stat.st_rdev]) + + AC_FUNC_FSEEKO ++AC_FUNC_ALLOCA ++AC_CHECK_FUNCS([fseeko]) + if test $ac_cv_func_fseeko = no; then + AC_LIBOBJ(fseeko) + AC_LIBOBJ(ftello) +@@ -1444,7 +1454,7 @@ + [config-override], + AC_HELP_STRING( + [--enable-config-override], +- [Set to a comma-seperated list of paths to directories (designated by ++ [Set to a comma-separated list of paths to directories (designated by + trailing `/') and files, specifies the path prefixes (for directories) and + paths to files the CVS server commands will allow configuration to be read + from. Specify `--enable-config-override=no' to disable config file +--- cvs-1.12.13+real.orig/contrib/cvs_acls.html ++++ cvs-1.12.13+real/contrib/cvs_acls.html +@@ -280,7 +280,7 @@ + <p>A final note about the repository matching pattern. The example above + uses ``ALL'' but note that this means that the cvs_acls script will run + for each and every commit in your repository. Obviously, in a large +-repository this adds up to a lot of overhead that may not be necesary. ++repository this adds up to a lot of overhead that may not be necessary. + A better strategy is to use a repository pattern that is more specific + to the areas that you wish to secure.</p> + <p>3. Install this file as $CVSROOT/CVSROOT/cvs_acls and make it executable.</p> +--- cvs-1.12.13+real.orig/contrib/cvs_acls.in ++++ cvs-1.12.13+real/contrib/cvs_acls.in +@@ -309,7 +309,7 @@ + A final note about the repository matching pattern. The example above + uses "ALL" but note that this means that the cvs_acls script will run + for each and every commit in your repository. Obviously, in a large +-repository this adds up to a lot of overhead that may not be necesary. ++repository this adds up to a lot of overhead that may not be necessary. + A better strategy is to use a repository pattern that is more specific + to the areas that you wish to secure. + +--- cvs-1.12.13+real.orig/contrib/rcs2log.1 ++++ cvs-1.12.13+real/contrib/rcs2log.1 +@@ -1,3 +1,4 @@ ++.\" $MirOS: src/gnu/usr.bin/cvs/contrib/rcs2log.1,v 1.2 2011/05/06 22:44:59 tg Exp $ + .\" + .\" Copyright 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc. + .\" +@@ -25,17 +26,17 @@ + .Sh SYNOPSIS + .Nm rcs2log + .Bk -words ++.Op Fl nRv + .Op Fl c Ar changelog + .Op Fl h Ar hostname + .Op Fl i Ar indent + .Op Fl l Ar length +-.Op Fl R ++.Op Fl L Ar file + .Op Fl r Ar option + .Op Fl t Ar tabwidth + .Op Fl u Ar login<TAB>fullname<TAB>mailaddr +-.Op Fl v +-.Op Fl -help +-.Op Fl -version ++.Op Fl \-help ++.Op Fl \-version + .Op Ar file ... + .Ek + .Sh DESCRIPTION +@@ -62,6 +63,14 @@ + Try to limit log lines to + .Ar length + characters (default 79). ++.It Fl L Ar file ++Use rlog-format ++.Ar file ++for source of logs. ++.It Fl n ++Obsolete, use ++.Fl u ++instead (whose syntax differs). + .It Fl R + If no + .Ar file Ns Li (s) +@@ -83,9 +92,9 @@ + .Ar mailaddr . + .It Fl v + Append RCS revision to file names in log lines. +-.It Fl -help ++.It Fl \-help + Output help. +-.It Fl -version ++.It Fl \-version + Output version number. + .El + .Sh SEE ALSO +--- cvs-1.12.13+real.orig/contrib/rcs2log.sh ++++ cvs-1.12.13+real/contrib/rcs2log.sh +@@ -1,4 +1,5 @@ + #! /bin/sh ++# $MirOS: src/gnu/usr.bin/cvs/contrib/rcs2log.sh,v 1.6 2011/05/06 22:44:59 tg Exp $ + + # Copyright (C) 1995-2005 The Free Software Foundation, Inc. + +@@ -31,6 +32,7 @@ + -i INDENT Indent change log lines by INDENT spaces (default 8). + -l LENGTH Try to limit log lines to LENGTH characters (default 79). + -L FILE Use rlog-format FILE for source of logs. ++ -n Obsolete, use -u instead (whose syntax differs). + -R If no FILEs are given and RCS is used, recurse through working directory. + -r OPTION Pass OPTION to subsidiary log command. + -t TABWIDTH Tab stops are every TABWIDTH characters (default 8). +@@ -199,7 +201,7 @@ + m[9]="Oct"; m[10]="Nov"; m[11]="Dec" + ' + +-logdir=`$MKTEMP -d $TMPDIR/rcs2log.XXXXXX` ++logdir=$($MKTEMP -d $TMPDIR/rcs2log.XXXXXXXXXX) + test -n "$logdir" || exit + llogout=$logdir/l + trap exit 1 2 13 15 +@@ -632,7 +634,7 @@ + # Sort the log entries, first by date+time (in reverse order), + # then by author, then by log entry, and finally by file name and revision + # (just in case). +-sort -t"$SOH" +2 -4r +4 +0 | ++sort -t"$SOH" -k 3,4r -k 5 -k 1 | + + # Finally, reformat the sorted log entries. + $AWK -F"$SOH" ' +--- cvs-1.12.13+real.orig/contrib/sccs2rcs.in ++++ cvs-1.12.13+real/contrib/sccs2rcs.in +@@ -1,4 +1,5 @@ + #! @CSH@ -f ++# $MirOS: src/gnu/usr.bin/cvs/contrib/sccs2rcs.in,v 1.2 2011/05/06 21:50:27 tg Exp $ + + # Copyright (C) 1995-2005 The Free Software Foundation, Inc. + +@@ -219,7 +220,7 @@ + # we expected in the output we have other problems. + # Note: Solaris awk does not like the following line. Use gawk + # mawk, or nawk instead. +- set date = `sccs prs -r$rev $file | @AWK@ '/^D / {print (substr($3,0,2)+0<70?20:19) $3, $4; exit}'` ++ set date = `sccs prs -r$rev $file | @AWK@ '/^D / {print (substr($3,1,2)+0<70?20:19) $3, $4; exit}'` + set author = `sccs prs -r$rev $file | @AWK@ '/^D / {print $5; exit}'` + echo "" + echo "==> file $file, rev=$rev, date=$date, author=$author" +--- cvs-1.12.13+real.orig/debian/NEWS ++++ cvs-1.12.13+real/debian/NEWS +@@ -0,0 +1,79 @@ ++cvs (2:1.12.13+real-22) unstable; urgency=low ++ ++ Newly created repositories (from “cvs initâ€) now rely on ++ CVSUMASK for the permissions of the “history†and “val-tags†++ files instead of creating them as world-writable. ++ ++ Newly created repositories contain a LogHistory configuration ++ setting to only record write operations in the “history†file. ++ ++ If you are used to the previous behaviour, you can restore it ++ by altering (or removing, in which case the (commented-out) ++ default of logging everything will be used) the LogHistory ++ configuration setting and changing the permissions on the ++ “history†and “val-tags†files so that every user can write ++ into them. ++ ++ If you did not deliberately open your repository to all users ++ on your system, you might wish to change all existing repos ++ to this behaviour. To do this, check out the CVSROOT module, ++ edit the “config†file adding “LogHistory=TMARâ€, check that ++ change in, release the CVSROOT module, and chmod the “history†++ and “val-tags†files to either 0664 (if all users in the same ++ group should be able to commit) or 0644 (if only you wish to ++ commit), possibly 0660 or 0600 is non-committers should also ++ be denied reading. ++ ++ Contact me (mirabilos) in #cvs on irc.freenode.net if you have ++ any questions about this change or require further support. ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 28 Mar 2017 19:54:01 +0200 ++ ++cvs (2:1.12.13+real-7) unstable; urgency=high ++ ++ rcs2log no longer lives in the PATH, the contributed script ++ and its manpage are in /usr/share/cvs/contrib/rcs2log now. ++ ++ Some contrib files (and their documentation) are no longer ++ shipped with the binary package (antique, insecure, useless). ++ ++ -rHEAD in "cvs diff" now, consistently with all other cvs ++ subcommands, means "tip of the trunk (MAIN branch)"; to ++ access the tip of the another branch, use its name; as a ++ compatibility aid, -r.bhead (only in diff) points to the ++ tip of the sticky branch. ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Sun, 04 Dec 2011 20:10:09 +0000 ++ ++cvs (2:1.12.13+real-5) unstable; urgency=low ++ ++ This cvs package is a totally new packaging and has almost ++ nothing in common with what was in Debian before. The most ++ visible changes are outlined below: ++ ++ pserver is no longer officially supported; the cvs package ++ does not install any service, inetd, or something similar. ++ If you want to set up a CVS server, use SSH, as shown in: ++ * http://www.stremler.net/Code/cvs_tricks/cvs-over-ssh.html ++ * http://www.stremler.net/Code/cvs_tricks/cvs-over-ssh-advanced.html ++ * http://www.stremler.net/Code/cvs_tricks/cvs-over-ssh-advanced2.html ++ ++ Consequentially, PAM is also no longer supported, and this ++ package does not set up or manage any repositories; that's ++ the system administrator's job now. ++ ++ For running "cvs admin" tasks the user must be a member of ++ the new "_cvsadmin" system group, or the repository be set ++ up (UserAdminOptions in CVSROOT/config) to allow everyone. ++ ++ The date format for $Id$ and similar in checkouts has been ++ switched back from ISO 8601 to the standard RCS format, to ++ keep checksums over checkouts/exports consistent. This, as ++ well as the fact that only the :local: and :extssh: access ++ methods are officially supported, is not negotiable. ++ ++ Please direct feature requests upstream, not to the BTS. I ++ do quite an amount of hacking CVS, but prefer to care only ++ about the packaging bits with "full power" in Debian. ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Sat, 11 Jun 2011 05:01:49 +0000 +--- cvs-1.12.13+real.orig/debian/changelog ++++ cvs-1.12.13+real/debian/changelog +@@ -0,0 +1,243 @@ ++cvs (2:1.12.13+real-22+deb9u1) stretch-security; urgency=high ++ ++ * Fix CVE-2017-12836 (Closes: #871810) ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Sat, 12 Aug 2017 19:19:53 +0200 ++ ++cvs (2:1.12.13+real-22) unstable; urgency=low ++ ++ * cvs init: Change default history logging configuration ++ to only log write operations by adding “LogHistory=TMAR†++ * Testsuite: Alter to cope with this explicit option ++ * cvs init: Rely on CVSUMASK for history and val-tags files ++ in newly created repositories (Closes: #858769) ++ * Add a NEWS.Debian entry verbosely documenting this change ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 28 Mar 2017 20:01:39 +0200 ++ ++cvs (2:1.12.13+real-21) unstable; urgency=medium ++ ++ [ Sylvain Beucler ] ++ * Add --allow-root-regexp option, for Savannah ++ ++ [ Thorsten Glaser ] ++ * Always add --build=/--host= to avoid config.guess being too smart ++ * Fix testsuite for --allow-root-regexp in the “deny†case ++ * Some minor documentation fixes (wording and formatting) ++ * Remove unnecessary autopoint from Build-Depends; optimise them ++ * Harmonise PDF version 1.4 across all generated PDFs ++ * Generate all PDFs using the PA4 paper size (prints on Letter and A4) ++ * Disable parallel build because the testsuite is not safe ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Mon, 09 Jan 2017 23:19:38 +0000 ++ ++cvs (2:1.12.13+real-20) unstable; urgency=low ++ ++ * Do not spew into syslog when 'cvs pserver' is called from a tty ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Wed, 09 Nov 2016 04:17:18 +0100 ++ ++cvs (2:1.12.13+real-19) unstable; urgency=low ++ ++ * Update from MirBSD CVS: ++ - Fix some spelling mistakes ++ - Greatly improve the manpage introduction (even going so far ++ as to add a “how not to be totally lost in info†section) ++ - Improve documentation cross-references ++ - Apply TCP_NODELAY patch from CVS mailing list ++ * Switch (experimentally) to debhelper compat 10 ++ * Enhances cvs2svn (>= 2.4.0-4~) as it’s added relevant patches ++ * Make cross-buildable (Closes: #842847) ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 08 Nov 2016 23:22:39 +0000 ++ ++cvs (2:1.12.13+real-18) unstable; urgency=low ++ ++ [ esr ] ++ * Correct a bug in the manpage ++ ++ [ Sergei Trofimovich ] ++ * Fix a memory leak ++ ++ [ Thorsten Glaser ] ++ * Several sanity and getdate fixes ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Sun, 23 Oct 2016 00:34:10 +0200 ++ ++cvs (2:1.12.13+real-17) unstable; urgency=medium ++ ++ * Fix a use-after-free bug ++ * Correctly use autoconf to detect long double ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Sat, 22 Oct 2016 05:42:39 +0200 ++ ++cvs (2:1.12.13+real-16) unstable; urgency=medium ++ ++ * Take back the package (Closes: #764397) ++ * Fix typo in changelog entry for cvs (2:1.12.13+real-9) and others ++ * Bump Policy; no changes ++ * Update code with bugfixes from MirBSD 0AB7.2 (Closes: #839669) ++ * Actually use correct getdate implementation ++ * groff now needs an explicit ghostscript dependency for ps2pdf ++ * Remove stuff unnecessary with dh-autoreconf ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Sat, 22 Oct 2016 02:58:34 +0200 ++ ++cvs (2:1.12.13+real-15) unstable; urgency=low ++ ++ * QA upload. ++ * Orphan the package. ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 07 Oct 2014 17:58:58 +0000 ++ ++cvs (2:1.12.13+real-14) unstable; urgency=low ++ ++ * debian/control: Move VCS-* fields to Alioth collab-maint git ++ * Remove now-useless RCS IDs ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 08 Jul 2014 16:10:54 +0200 ++ ++cvs (2:1.12.13+real-12) unstable; urgency=medium ++ ++ * Add texlive-fonts-recommended B-D (thanks Norbert Preining) ++ to fix FTBFS in sid (thanks Daniel Schepler) (Closes: #739138) ++ * Policy 3.9.5 (no changes AFAICT) ++ * Check distfile with upstream signing key (thanks lintian) ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Sun, 16 Feb 2014 14:07:36 +0000 ++ ++cvs (2:1.12.13+real-11) unstable; urgency=medium ++ ++ * Add workaround for eglibc crypt(3) returning NULL ++ * If DEB_BUILD_OPTIONS contains “sanity†run testsuite after build ++ * Drop obsolete texi2html B-D (thanks lintian) that was unused anyway ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Thu, 18 Jul 2013 21:52:12 +0000 ++ ++cvs (2:1.12.13+real-10) unstable; urgency=low ++ ++ [ Daniel Schepler ] ++ * Use dh-autoreconf to regenerate configure script and avoid unnecessary ++ compilation of mktime.c, which doesn't work on x32 as is. ++ * Add texlive-latex-recommended to fix just another FTBFS ++ ++ [ Thorsten Glaser ] ++ * Do not compress *.pdf files (cf. #704093) ++ * Allow root to commit ++ * Policy 3.9.4 ++ * Make cvs.texinfo compatible with newer makeinfo (Closes: #711298) ++ * Actually use a fixed mktime.m4 (Closes: #698908) ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Wed, 26 Jun 2013 19:40:39 +0000 ++ ++cvs (2:1.12.13+real-9) unstable; urgency=low ++ ++ * Fix watch file: mangle Epoch away, too ++ * Remove old conffile /etc/pam.d/cvs (Closes: #669957) ++ * Policy 3.9.3 (no changes) ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Sun, 22 Apr 2012 15:10:16 +0000 ++ ++cvs (2:1.12.13+real-8) unstable; urgency=high ++ ++ * Brown paper bag change: sanity.sh (the testsuite) was corrupted ++ during checkout of the packaging VCS in the -7 (all PASS again) ++ * Bonus change: use hardening build flags; fix resulting warnings ++ * Urgency due to riding on the previous upload’s security fix ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 07 Feb 2012 20:39:42 +0000 ++ ++cvs (2:1.12.13+real-7) unstable; urgency=high ++ ++ * Drop unsafe scripts from contrib, add NEWS entry for that ++ (Closes: #658947) ++ * debian/rules: cleanup (remove install/check, dh_installdirs; ++ switch to dh_prep if extant) ++ * Use -Wl,--as-needed for the link to appease dpkg-shlibdebs ++ * Update maintainer scripts from template jupp (better comments) ++ * Drop csh-using contrib script from package, with NEWS entry ++ * Demote rcs2log(1) to contrib, add NEWS entry ++ * Stop shipping a patch to rcs(1) with the binary package, ffs ++ * Don’t ship cvshelp.man either, it’s antiquated and not useful ++ * Fix meaning of -rHEAD for the diff subcommand (with NEWS entry) ++ * Make the testsuite again usable (full PASS) ++ * Apply suggested patch for CVE-2012-0804 from Petr Pisar ++ * Update lintian overrides ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Tue, 07 Feb 2012 18:01:44 +0000 ++ ++cvs (2:1.12.13+real-6) unstable; urgency=low ++ ++ * d/watch: mangle the +real away until 1.12.14 is out, ++ as this is an artefact from the old (epoch 1) packaging ++ * Demote mksh to Suggests, recommended (hah!) by many ++ (Closes: #631110) (merges back ++ 2:1.12.13+real-5debianderivatethatcannotbenamed1) ++ * Honour Policy §11.4; fix by YOSHINO Yoshihito (Closes: #631936) ++ * Use upstream-source-in-CVS packaging, clean up ++ * d/rules: Add build-{arch,indep} targets as aliases to build ++ * Bring d/copyright more in sync with this distfile’s reality ++ * d/control: Reword package description. (Closes: #631826) ++ * If sleeping at exit, sleep another 20 ms (2 HZ), to avoid ++ possible race conditions. (Should work around LP: #12230) ++ * Update in sync with MirPorts 1.12.13-12 = MirOS BSD 0AAF.1 ++ * Stop installing cvsbug(8), use reportbug instead ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Thu, 28 Jul 2011 16:02:02 +0000 ++ ++cvs (2:1.12.13+real-5) unstable; urgency=low ++ ++ * Drop PAM entirely, it was specific to Debian anyway ++ * Add cvs-switchroot, from src/scripts/mnt-cvsroot (Closes: #41685) ++ * Drop some old and irrelevant changelogs from the binary package ++ * Update from MirPorts 1.12.13-11 = MirOS BSD 0AAE.2 ++ * Revert most of 65_login_cvspass_message and just be silent if the ++ pserver client password file doesn't exist and create it silently ++ if needed (Closes: #524146) ++ * Honour noexec flag in 'cvs -n init' (Closes: #151982) ++ * Sync modules option list with cederqvist (Closes: #226888) ++ * Apply patch for assert on negated version numbers on diff ++ (Closes: #297551) ++ From: Peter Moulder <Peter.Moulder@infotech.monash.edu.au> ++ * Change cvs add dir message (Closes: #294094) ++ * Accept port when using extssh connection method (Closes: #151882) ++ * Write a new command for direct ,v file download (Closes: #421119) ++ * Drop broken libbsd.fd.o headers and shut up gcc 4.6 warnings ++ * Fix piuparts breakage: ignore delgroup non-existence on purge ++ * Deliver a NEWS.Debian (Closes: #626106) ++ * d/README.source: Update, call to automake is now also needed ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Sat, 11 Jun 2011 05:32:56 +0000 ++ ++cvs (2:1.12.13+real-4) unstable; urgency=low ++ ++ * Renamed .orig.tar.gz due to archive pathname conflict ++ * d/README.source: Document patch location (VCS-CVS, VCS-Browser alike) ++ * New build from MirPorts 1.12.13-10 = MirOS BSD 0AAE.1 ++ - Contains changes from cvs ++ (1:1.12.13-12debianderivatethatcannotbenamed1): ++ + Apply fix from Kees Cook to avoid %n in writable memory (LP: #296453) ++ - Other BTS relevant changes: ++ + Allow CVSROOT-less “version†(LP: #97683) and “cvs version†++ + Update loginfo documentation, ‘%{t}’ is indeed gone (Closes: #329151) ++ + Lower syslog level from emergency (Closes: #563856) ++ + Fix awk substr start argument, thanks John Hughes (Closes: #518600) ++ + Rename nodes with colons in them (Closes: #113809) ++ + Fix typo (Closes: #464137) ++ + Document missing rcs2log(1) options (Closes: #306354) and fix dashes ++ * Upload new package to Debian unstable (Closes: #306432) ++ (Closes: #458864) (Closes: #464134) (Closes: #479752) ++ (Closes: #576035) (Closes: #614700) (Closes: #617578) ++ - Drop PAM (Closes: #340984) (Closes: #393436) ++ - No longer installs repositories (Closes: #168300) ++ (Closes: #408117) (Closes: #482301) (Closes: #499790) ++ (Closes: #511643) (Closes: #607297) ++ - Deprecate pserver (Closes: #343169) (Closes: #495938) ++ - Drop Origin and Bugs headers again (upload to Debian proper) ++ and old (pre-Debian upload) private repo changelog entries ++ - Thank you, Steve, for handing over package maintainership! ++ * Clarify package description (LP: #377411) ++ * Build with Kerberos V support (Closes: #60800) (LP: #157760) ++ * Recommends: openssh-client; Suggests: rcs ++ ++ -- Thorsten Glaser <tg@mirbsd.de> Sat, 07 May 2011 01:00:39 +0000 +--- cvs-1.12.13+real.orig/debian/compat ++++ cvs-1.12.13+real/debian/compat +@@ -0,0 +1 @@ ++10 +--- cvs-1.12.13+real.orig/debian/control ++++ cvs-1.12.13+real/debian/control +@@ -0,0 +1,41 @@ ++Source: cvs ++Section: vcs ++Priority: optional ++Maintainer: Thorsten Glaser <tg@mirbsd.de> ++Homepage: http://www.nongnu.org/cvs/ ++Build-Depends: debhelper (>= 10), autotools-dev, bsdmainutils, ++ ghostscript, groff, libbsd-dev, libkrb5-dev | heimdal-dev, procps, ++ texinfo, texlive-latex-recommended, texlive-fonts-recommended, zlib1g-dev ++Standards-Version: 3.9.8 ++VCS-git: https://anonscm.debian.org/git/collab-maint/cvs.git ++VCS-Browser: https://anonscm.debian.org/cgit/collab-maint/cvs.git ++ ++Package: cvs ++Architecture: any ++Multi-Arch: foreign ++Depends: ${misc:Depends}, ${shlibs:Depends}, adduser, ++ dpkg (>= 1.15.4) | install-info ++Recommends: openssh-client ++Suggests: mksh (>= 40~), rcs ++Enhances: rcs, cvs2svn (>= 2.4.0-4~) ++Replaces: cvs-doc ++Conflicts: cvs-doc ++Provides: cvs-doc ++Description: Concurrent Versions System ++ CVS is a version control system, which allows you to keep access ++ to old versions of files (usually source code), keep a log of ++ who, when, and why changes occurred, etc., like RCS or SCCS. ++ It handles multiple developers, multiple directories, triggers to ++ enable/log/control various operations, and can work over a wide ++ area network. The texinfo manual provides further information on ++ more tasks that it can perform. ++ . ++ There are some tasks that are not covered by CVS. They can be done in ++ conjunction with CVS but will tend to require some script-writing and ++ software other than CVS. These tasks are bug-tracking, build management ++ (that is, make and make-like tools), and automated testing. However, ++ CVS makes these tasks easier. ++ . ++ This package contains a CVS binary which can act as both client and ++ server, although there is no CVS dæmon; to access remote repositories, ++ please use :extssh: not :pserver: any more. +--- cvs-1.12.13+real.orig/debian/copyright ++++ cvs-1.12.13+real/debian/copyright +@@ -0,0 +1,117 @@ ++This package was debianised by Thorsten Glaser <tg@mirbsd.de> on ++Wed Sep 15 21:52:29 UTC 2010. ++ ++It was downloaded from: ++http://ftp.gnu.org/non-gnu/cvs/source/feature/1.12.13/cvs-1.12.13.tar.gz ++ ++ ++GNU CVS itself is Copyright © 1986-2005 ++ The Free Software Foundation, Inc. ++with portions contributed by others. ++ ++It is licenced under the GNU General Public License, version 2 or later, ++with a good part available under either GPLv1 or LGPLv2.x. On Debian sy†++stems the licence can be found at: /usr/share/common-licenses/GPL-2 ++ ++Parts of the code are covered by the following GPL-compatible copyright: ++ ++ * Copyright (c) 1993 Bob Withers ++ * All Rights Reserved ++ * ++ * Permission to use, copy, modify, and distribute this software and ++ * its documentation for any purpose and without fee is hereby granted ++ * provided that the above copyright notice appears in all copies and ++ * that both the copyright notice and this permission notice appear in ++ * supporting documentation. ++ ++One header file, which almost certainly does not fall under copyright ++law, is covered by the four-clause UCB licence, however in 1999 the ++advertising clause was rescinded, so it’s GPL compatible now: ++ ++ * Copyright (c) 1989 The Regents of the University of California. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. All advertising materials mentioning features or use of this software ++ * must display the following acknowledgement: ++ * This product includes software developed by the University of ++ * California, Berkeley and its contributors. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ ++Parts and the packaging are covered by the following GPL-compatible licence: ++ ++# Copyright © 2005, 2008, 2011, 2017 ++# mirabilos <m@mirbsd.org> ++# ++# Provided that these terms and disclaimer and all copyright notices ++# are retained or reproduced in an accompanying document, permission ++# is granted to deal in this work without restriction, including un†++# limited rights to use, publicly perform, distribute, sell, modify, ++# merge, give away, or sublicence. ++# ++# This work is provided “AS IS†and WITHOUT WARRANTY of any kind, to ++# the utmost extent permitted by applicable law, neither express nor ++# implied; without malicious intent or gross negligence. In no event ++# may a licensor, author or contributor be held liable for indirect, ++# direct, other damage, loss, or other issues arising in any way out ++# of dealing in the work, even if advised of the possibility of such ++# damage or existence of a defect, except proven that it results out ++# of said person’s immediate fault when using the work as intended. ++ ++CVS also includes a convenience copy of zlib which is not used; ++it’s covered by these (GPL-compatible) terms: ++ ++ Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler ++ ++ This software is provided 'as-is', without any express or implied ++ warranty. In no event will the authors be held liable for any damages ++ arising from the use of this software. ++ ++ Permission is granted to anyone to use this software for any purpose, ++ including commercial applications, and to alter it and redistribute it ++ freely, subject to the following restrictions: ++ ++ 1. The origin of this software must not be misrepresented; you must not ++ claim that you wrote the original software. If you use this software ++ in a product, an acknowledgment in the product documentation would be ++ appreciated but is not required. ++ 2. Altered source versions must be plainly marked as such, and must not be ++ misrepresented as being the original software. ++ 3. This notice may not be removed or altered from any source distribution. ++ ++zlib, again, contains contributed material under terms as those: ++ ++ * Copyright (c) 1997 ++ * Christian Michelsen Research AS ++ * Advanced Computing ++ * Fantoftvegen 38, 5036 BERGEN, Norway ++ * http://www.cmr.no ++ * ++ * Permission to use, copy, modify, distribute and sell this software ++ * and its documentation for any purpose is hereby granted without fee, ++ * provided that the above copyright notice appear in all copies and ++ * that both that copyright notice and this permission notice appear ++ * in supporting documentation. Christian Michelsen Research AS makes no ++ * representations about the suitability of this software for any ++ * purpose. It is provided "as is" without express or implied warranty. +--- cvs-1.12.13+real.orig/debian/cvs-switchroot ++++ cvs-1.12.13+real/debian/cvs-switchroot +@@ -0,0 +1,99 @@ ++#!/bin/mksh ++# $MirOS: src/scripts/mnt-cvsroot,v 1.19 2016/10/21 21:09:59 tg Exp $ ++#- ++# Copyright © 2005, 2008, 2011 ++# mirabilos <m@mirbsd.org> ++# ++# Provided that these terms and disclaimer and all copyright notices ++# are retained or reproduced in an accompanying document, permission ++# is granted to deal in this work without restriction, including un†++# limited rights to use, publicly perform, distribute, sell, modify, ++# merge, give away, or sublicence. ++# ++# This work is provided “AS IS†and WITHOUT WARRANTY of any kind, to ++# the utmost extent permitted by applicable law, neither express nor ++# implied; without malicious intent or gross negligence. In no event ++# may a licensor, author or contributor be held liable for indirect, ++# direct, other damage, loss, or other issues arising in any way out ++# of dealing in the work, even if advised of the possibility of such ++# damage or existence of a defect, except proven that it results out ++# of said person’s immediate fault when using the work as intended. ++#- ++# Change CVSROOT of a checked out tree (and save space with it) ++# With option -T: change Tag instead of Root ++ ++me=${0##*/} ++function die { ++ print -ru2 -- "$me: $*" ++ exit 1 ++} ++ ++if [[ $1 = -T ]]; then ++ tagmode=-T ++ fn=Tag ++ shift ++else ++ tagmode= ++ fn=Root ++fi ++newroot=$1 ++useroot=0 ++if [[ $newroot = - ]]; then ++ shift ++ newroot=$(realpath "$1") ++ [[ -d $newroot ]] && if [[ -d $newroot/CVS ]]; then ++ newroot=$newroot/CVS/$fn ++ else ++ newroot=$newroot/$fn ++ fi ++ useroot=1 ++fi ++if [[ -z $newroot || $newroot = -? ]]; then ++ print -u2 "Syntax: $me newroot [dir [...]]" ++ print -u2 "\t$me - .../CVS/Root [dir [...]]" ++ print -u2 "\t$me -T - .../CVS/Tag [dir [...]]" ++ exit 1 ++fi ++shift ++ ++[[ -n $1 ]] || set -- . ++ ++# realpath(2)ise arguments ++set -A arg ++i=0 ++for name in "$@"; do ++ arg[i++]=$(realpath "$name") ++done ++ ++T="$(mktemp ${arg[0]}/$me.XXXXXXXXXX)" || die fatal: cannot mktemp ++ ++if (( useroot )); then ++ rm -f "$T" ++ ln "$newroot" "$T" || cp "$newroot" "$T" || \ ++ die "fatal: cannot copy '$newroot' to temporary '$T'" ++fi ++ ++trap 'rm -f "$T"; exit 0' 0 ++trap 'rm -f "$T"; trap - EXIT; exit 1' 1 2 3 5 13 15 ++ ++if (( !useroot )); then ++ chmod 664 "$T" ++ print -r -- "$newroot" >"$T" ++fi ++ ++let rv=0 ++find "${arg[@]}" -path \*/CVS/$fn -print0 |& ++while IFS= read -d '' -pr name; do ++ rm "$name" || die "error: cannot rm <$name>" ++ ln -f "$T" "$name" || if ! U="$(mktemp ${arg[0]}/$me.XXXXXXXXXX)"; then ++ cp "$T" "$name" ++ elif cat "$T" >"$U" && ln -f "$U" "$name"; then ++ rm -f "$T" ++ T="$U" ++ else ++ rm -f "$U" ++ cp "$T" "$name" ++ fi ++done ++ ++exit 0 +--- cvs-1.12.13+real.orig/debian/cvs-switchroot.1 ++++ cvs-1.12.13+real/debian/cvs-switchroot.1 +@@ -0,0 +1,76 @@ ++.Dd June 10, 2011 ++.Dt CVS\-SWITCHROOT 1 ++.Os ++.Sh NAME ++.Nm cvs\-switchroot ++.Nd change repository or tag in a cvs working copy ++.Sh SYNOPSIS ++.Nm ++.Op Fl T ++.Ar newroot ++.Op Ar ++.Pp ++.Nm ++.Op Fl T ++\-\& ++.Ar srcpath ++.Op Ar ++.Sh DESCRIPTION ++The ++.Nm ++utility manipulates a CVS working copy directly, ++modifying the information stored in the administrative ++subdirectory and saving space by hardlinking if possible. ++.Pp ++If the ++.Fl T ++option is given, the sticky tag is operated on, ++otherwise, the repository path ++.Pq Ev CVSROOT . ++.Pp ++The information (Tag or Root) is set to the same as in ++.Ar srcpath ++if the first non-option argument ++.Ar newroot ++is a sole dash ++.Pq Sq \-\& , ++the literal value ++.Ar newroot ++otherwise. ++.Sh EXAMPLES ++Change all ++.Pa Root ++information in the current sandbox to ++.Pa /cvs : ++.Bd -literal -offset ident ++$ cvs-switchroot /cvs . ++.Ed ++.Pp ++Set all roots in the current working directory and all ++its subdirectories to the ++.Pa Root ++of the parent directory: ++.Bd -literal -offset ident ++$ cvs-switchroot \- .. . ++.Ed ++.Pp ++Hardlink the ++.Pa Tag ++information in the current working directory, for example ++.Pa /usr/src , ++and ++.Pa /usr/ports ++with each other: ++.Bd -literal -offset ident ++$ cvs-switchroot \-T \- . . /usr/ports ++.Ed ++.Sh SEE ALSO ++.Xr cvs 1 ++.Sh HISTORY ++.Nm ++has existed in the MirBSD source tree since 2005. ++It was added to Debian's cvs package in 2011. ++.Sh CAVEATS ++.Nm ++depends on ++.Nm mksh . +--- cvs-1.12.13+real.orig/debian/doc-base ++++ cvs-1.12.13+real/debian/doc-base +@@ -0,0 +1,21 @@ ++Document: cvs-doc ++Title: Cederqvist - The CVS manual ++Author: FSF, Derek R. Price, Ximbiot, Signum Support AB, and others ++Abstract: This manual describes how to use and administer CVS. ++ It is both a manual and a tutorial, as well as a reference guide, ++ also known as The Cederqvist, and *the* book to read before using CVS. ++Section: Programming ++ ++Format: HTML ++Index: /usr/share/doc/cvs/cvs.html ++Files: /usr/share/doc/cvs/cvs.html* ++ ++Format: Text ++Files: /usr/share/doc/cvs/cvs.txt* ++ ++Format: PDF ++Files: /usr/share/doc/cvs/cvs.pdf* ++ ++Format: Info ++Index: /usr/share/info/cvs.info.gz ++Files: /usr/share/info/cvs.info* +--- cvs-1.12.13+real.orig/debian/doc-base.client ++++ cvs-1.12.13+real/debian/doc-base.client +@@ -0,0 +1,18 @@ ++Document: cvs-doc-client ++Title: CVS client/server protocol description ++Abstract: This document describes the client/server protocol used by CVS. ++Section: Programming ++ ++Format: HTML ++Index: /usr/share/doc/cvs/cvsclient.html ++Files: /usr/share/doc/cvs/cvsclient.html* ++ ++Format: Text ++Files: /usr/share/doc/cvs/cvsclient.txt* ++ ++Format: PDF ++Files: /usr/share/doc/cvs/cvsclient.pdf* ++ ++Format: Info ++Index: /usr/share/info/cvsclient.info.gz ++Files: /usr/share/info/cvsclient.info* +--- cvs-1.12.13+real.orig/debian/doc-base.faq ++++ cvs-1.12.13+real/debian/doc-base.faq +@@ -0,0 +1,10 @@ ++Document: cvs-doc-faq ++Title: CVS - Frequently Asked Questions ++Author: David Grubbs, Dr. Pascal Molli, and others ++Abstract: Packaged FAQ-O-MATIC dump containing a number of answers ++ to frequently asked questions about CVS. The document may be out of ++ date; http://ximbiot.com/cvs/wiki/CVS%20FAQ contains an updated version. ++Section: Programming ++ ++Format: Text ++Files: /usr/share/doc/cvs/FAQ* +--- cvs-1.12.13+real.orig/debian/doc-base.intro ++++ cvs-1.12.13+real/debian/doc-base.intro +@@ -0,0 +1,7 @@ ++Document: cvs-doc-intro ++Title: Introduction to using CVS ++Author: Steven Pemberton <Steven.Pemberton@cwi.nl> ++Section: Programming ++ ++Format: Text ++Files: /usr/share/cvs/contrib/intro.doc* +--- cvs-1.12.13+real.orig/debian/doc-base.paper ++++ cvs-1.12.13+real/debian/doc-base.paper +@@ -0,0 +1,14 @@ ++Document: cvs-doc-paper ++Title: CVS II: Parallelizing Software Development ++Author: Brian Berliner <berliner@prisma.com> ++Abstract: This paper is the cvs USENIX article, Winter 1990. ++ The program described in this paper fills a need in the UNIX community ++ for a freely available tool to manage software revision and release ++ control in a multi-developer, multi-directory, multi-group environment. ++ This tool also addresses the increasing need for tracking third-party ++ vendor source distributions while trying to maintain local modifications ++ to earlier releases. ++Section: Programming ++ ++Format: PDF ++Files: /usr/share/doc/cvs/cvs-paper.pdf* +--- cvs-1.12.13+real.orig/debian/doc-base.rcsfiles ++++ cvs-1.12.13+real/debian/doc-base.rcsfiles +@@ -0,0 +1,11 @@ ++Document: cvs-doc-rcsfiles ++Title: RCS file format description ++Author: Jim Kingdon ++Abstract: This file attempts to document the RCS file format (which is ++ implemented by a great many tools, both free and non-free, both by ++ calling GNU RCS and by reimplementing access to RCS files) in some ++ standard separate from any one tool. ++Section: Programming ++ ++Format: Text ++Files: /usr/share/doc/cvs/RCSFILES* +--- cvs-1.12.13+real.orig/debian/docs ++++ cvs-1.12.13+real/debian/docs +@@ -0,0 +1,20 @@ ++AUTHORS ++BUGS ++DEVEL-CVS ++FAQ ++HACKING ++MINOR-BUGS ++NEWS ++PROJECTS ++README ++TODO ++debian/builddir/doc/*.html ++debian/builddir/doc/*.txt ++debian/builddir/doc/cvs.pdf ++debian/builddir/doc/cvsclient.pdf ++debian/stagedir/clogs/ChangeLog.* ++doc/HACKING.DOCS ++doc/RCSFILES ++doc/cvs-paper.ms ++doc/cvs-paper.pdf ++doc/writeproxy.rtf +--- cvs-1.12.13+real.orig/debian/info ++++ cvs-1.12.13+real/debian/info +@@ -0,0 +1 @@ ++debian/stagedir/usr/share/info/*.info +--- cvs-1.12.13+real.orig/debian/install ++++ cvs-1.12.13+real/debian/install +@@ -0,0 +1,11 @@ ++#contrib/cvs_acls.html usr/share/cvs/contrib/ ++contrib/descend.man usr/share/cvs/contrib/ ++contrib/descend.sh usr/share/cvs/contrib/ ++contrib/rcs2log.1 usr/share/cvs/contrib/ ++contrib/rcs2sccs.sh usr/share/cvs/contrib/ ++contrib/sandbox_status.man usr/share/cvs/contrib/ ++debian/cvs-switchroot usr/bin/ ++debian/lintian/cvs usr/share/lintian/overrides/ ++debian/stagedir/usr/bin/cvs usr/bin/ ++#debian/stagedir/usr/bin/cvsbug usr/bin/ ++debian/stagedir/usr/share/cvs/contrib/* usr/share/cvs/contrib/ +--- cvs-1.12.13+real.orig/debian/lintian/cvs ++++ cvs-1.12.13+real/debian/lintian/cvs +@@ -0,0 +1,2 @@ ++# see #469523 for justification ++cvs: arch-dep-package-has-big-usr-share * +--- cvs-1.12.13+real.orig/debian/manpages ++++ cvs-1.12.13+real/debian/manpages +@@ -0,0 +1,4 @@ ++debian/cvs-switchroot.1 ++debian/stagedir/usr/share/man/man1/cvs.1 ++debian/stagedir/usr/share/man/man5/cvs.5 ++#debian/stagedir/usr/share/man/man8/cvsbug.8 +--- cvs-1.12.13+real.orig/debian/postinst ++++ cvs-1.12.13+real/debian/postinst +@@ -0,0 +1,56 @@ ++#!/bin/sh ++ ++set -e ++ ++# This maintainer script can be called the following ways: ++# ++# * new-postinst "configure" [$most_recently_configured_version] ++# The package is unpacked; all dependencies are unpacked and, when there ++# are no circular dependencies, configured. ++# ++# * old-postinst "abort-upgrade" $new_version ++# * conflictors-postinst "abort-remove" "in-favour" $package ++# $new_version ++# * postinst "abort-remove" ++# * deconfigureds-postinst "abort-deconfigure" "in-favour" ++# $failed_install_package $fip_version ["removing" ++# $conflicting_package $cp_version] ++# The package is unpacked; all dependencies are at least Half-Installed, ++# previously been configured, and not removed. In some error situations, ++# dependencies may not be even fully unpacked. ++# ++# * postinst "triggered" "${triggers[*]}" ++# For trigger-only calls, i.e. if "configure" is not called. ++ ++# upgrade case from Epoch 1 Debian CVS ++nukes='/etc/cvs.conf /etc/cvs-cron.conf /etc/cvs-pserver.conf /etc/cron.weekly/cvs /etc/pam.d/cvs' ++for x in $nukes; do ++ test -e "$x" || continue ++ rm -f $nukes ++ test -x /usr/sbin/update-inetd && update-inetd --remove "^cvspserver" ++ break ++done ++ ++case $1 in ++configure) ++ addgroup --force-badname --system _cvsadmin ++ ;; ++ ++abort-upgrade|abort-remove|abort-deconfigure) ++ ;; ++ ++triggered) ++ ;; ++ ++*) ++ echo >&2 "postinst called with unknown subcommand '$1'" ++ exit 1 ++ ;; ++esac ++ ++# dh_installdeb will replace this with shell code automatically ++# generated by other debhelper scripts. ++ ++#DEBHELPER# ++ ++exit 0 +--- cvs-1.12.13+real.orig/debian/postrm ++++ cvs-1.12.13+real/debian/postrm +@@ -0,0 +1,51 @@ ++#!/bin/sh ++ ++set -e ++ ++# This maintainer script can be called the following ways: ++# ++# * postrm "remove" ++# * postrm "purge" ++# * old-postrm "upgrade" $new_version ++# * disappearers-postrm "disappear" $overwriter $o_version ++# The package's files have been removed or replaced; only Essential pak- ++# kages may be available; skip gracefully actions requiring Depends. ++# ++# * new-postrm "failed-upgrade" $old_version ++# * new-postrm "failed-upgrade" $old_version $new_version # 1.18.5, stretch ++# Called when 'old-postrm "upgrade"' fails; the new package is unpacked, ++# Essential packages and Pre-Depends are available; the latter have been ++# configured and never removed but may be Unpacked or Half-Configured. ++# ++# * new-postrm "abort-install" [$old_version] ++# * new-postrm "abort-install" $old_version $new_version # 1.18.5, stretch ++# * new-postrm "abort-upgrade" $old_version ++# * new-postrm "abort-upgrade" $old_version $new_version # 1.18.5, stretch ++# Called when preinst fails; package is not unpacked. Essential packages ++# and (unpacked or Half-Configured) Pre-Depends are available. ++ ++case $1 in ++remove) ++ ;; ++ ++purge) ++ rm -f /etc/cvs.conf /etc/cvs-cron.conf /etc/cvs-pserver.conf /etc/cron.weekly/cvs /etc/pam.d/cvs ++ test -x /usr/sbin/update-inetd && update-inetd --remove "^cvspserver" ++ (delgroup --system --only-if-empty _cvsadmin || :) ++ ;; ++ ++upgrade|disappear|failed-upgrade|abort-install|abort-upgrade) ++ ;; ++ ++*) ++ echo >&2 "postrm called with unknown subcommand '$1'" ++ exit 1 ++ ;; ++esac ++ ++# dh_installdeb will replace this with shell code automatically ++# generated by other debhelper scripts. ++ ++#DEBHELPER# ++ ++exit 0 +--- cvs-1.12.13+real.orig/debian/rules ++++ cvs-1.12.13+real/debian/rules +@@ -0,0 +1,176 @@ ++#!/usr/bin/make -f ++ ++DEB_BUILD_ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH) ++DEB_HOST_ARCH=$(shell dpkg-architecture -qDEB_HOST_ARCH) ++DEB_BUILD_GNU_TYPE=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ++DEB_HOST_GNU_TYPE=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) ++ ++# is ${CC} defined anywhere (other than implicit rules?) ++ifneq (,$(findstring $(origin CC),default undefined)) ++# no - then default to gcc (or cross-gcc) ++ifneq (${DEB_BUILD_ARCH},${DEB_HOST_ARCH}) ++CC= ${DEB_HOST_GNU_TYPE}-gcc ++else ++CC= gcc ++endif ++endif ++ ++CONFIGURE_ENV:= CC='${CC}' ++EXTRA_CFLAGS= -Wall -fno-strict-aliasing -Wformat ++# addresses part of #698908 ++EXTRA_CFLAGS+= -fwrapv ++# for now. uses are mostly checked. ++EXTRA_CFLAGS+= -Wno-unused-result ++EXTRA_CPPFLAGS= -D_GNU_SOURCE -DUSE_LIBBSD ++ ++ifneq (,$(wildcard /usr/share/dpkg/buildflags.mk)) ++# dpkg-dev (>= 1.16.1~) ++DEB_CFLAGS_MAINT_APPEND=${EXTRA_CFLAGS} ++DEB_CPPFLAGS_MAINT_APPEND=${EXTRA_CPPFLAGS} ++DEB_BUILD_MAINT_OPTIONS=hardening=+all ++DPKG_EXPORT_BUILDFLAGS= Yes ++include /usr/share/dpkg/buildflags.mk ++else ++# old-fashioned way to determine build flags ++CFLAGS= -O$(if $(findstring noopt,${DEB_BUILD_OPTIONS}),0,2) -g ++CFLAGS+= ${EXTRA_CFLAGS} ++CPPFLAGS+= ${EXTRA_CPPFLAGS} ++CONFIGURE_ENV+= CFLAGS='${CFLAGS}' ++CONFIGURE_ENV+= CPPFLAGS='${CPPFLAGS}' ++CONFIGURE_ENV+= LDFLAGS='${LDFLAGS}' ++endif ++ ++LIBS+= -lbsd ++ ++CONFIGURE_ENV+= LIBS='${LIBS}' ++CONFIGURE_ENV+= CSH=/bin/csh ++ ++CONFIGURE_ARGS:= --build=${DEB_BUILD_GNU_TYPE} \ ++ --host=${DEB_HOST_GNU_TYPE} \ ++ --prefix=/usr \ ++ --infodir=/usr/share/info \ ++ --mandir=/usr/share/man \ ++ --sysconfdir=/etc \ ++ --disable-dependency-tracking \ ++ --disable-maintainer-mode \ ++ --disable-pam \ ++ --disable-nls \ ++ --enable-client \ ++ --enable-password-authenticated-client \ ++ --enable-server \ ++ --enable-proxy \ ++ --enable-case-sensitivity \ ++ --enable-encryption \ ++ --disable-lock-compatibility \ ++ --enable-rootcommit \ ++ --disable-old-info-format-support \ ++ --enable-config-override=no \ ++ --without-krb4 \ ++ --with-gssapi \ ++ --with-external-zlib \ ++ --with-rsh=ssh \ ++ --with-editor=/usr/bin/editor \ ++ --with-tmpdir=/var/tmp \ ++ --with-umask=002 \ ++ --with-cvs-admin-group=_cvsadmin ++ ++MAKE_ARGS:= MAKEINFO=makeinfo ++MAKE_ARGS+= MAKEINFOFLAGS=--no-split ++ ++CLEANFILES:= autom4te.cache build-aux/config.guess \ ++ build-aux/config.sub cvs.spec debian/.*_stamp \ ++ debian/CVSTEMP debian/builddir debian/stagedir \ ++ doc/cvs-paper.pdf doc/cvs.1 doc/cvs.info* \ ++ doc/cvs.pdf doc/cvsclient.info* doc/cvsclient.pdf \ ++ doc/getdate-cvs.texi emx/Makefile os2/Makefile \ ++ vms/config.h windows-NT/config.h ++ ++debian/.configure_stamp: ++ dh_testdir ++ -rm -rf ${CLEANFILES} ++ cp /usr/share/misc/config.guess /usr/share/misc/config.sub build-aux/ ++ dh_autoreconf ++ mkdir debian/builddir debian/stagedir ++ cd debian/builddir && \ ++ env ${CONFIGURE_ENV} sh ../../configure ${CONFIGURE_ARGS} ++ # generate PDF 1.4 by default ++ ln -s ../../../build-aux/texinfo.tex debian/builddir/doc/texinfo-r.tex ++ printf '%s\n' \ ++ '\pdfminorversion4\relax\pdfobjcompresslevel0\relax%' \ ++ '\input texinfo-r.tex' \ ++ >debian/builddir/doc/texinfo.tex ++ @:>$@ ++ ++build-indep: ++build build-arch: debian/.build_stamp ++ ++debian/.build_stamp: debian/.configure_stamp ++ dh_testdir ++ cd debian/builddir && ${MAKE} ${MAKE_ARGS} ++ cd debian/builddir && ${MAKE} -C doc ${MAKE_ARGS} doc html info pdf txt ++ifneq (,$(filter sanity,$(DEB_BUILD_OPTIONS))) ++ # run the testsuite after build (DEB_BUILD_OPTIONS=sanity) ++ # warning: this takes a *lot* of time! ++ # idea: run this under Valgrind to take even more time ;) ++ cd debian/builddir && ${MAKE} ${MAKE_ARGS} check ++endif ++ @:>$@ ++ ++clean: ++ dh_testdir ++ dh_autoreconf_clean ++ -rm -rf ${CLEANFILES} ++ dh_clean ++ ++binary-indep: ++ ++binary-arch: debian/.build_stamp ++ dh_testdir ++ dh_testroot ++ if test -x "$$(which dh_prep)"; then dh_prep; else dh_clean -k; fi ++ -rm -rf debian/stagedir ++ mkdir -p debian/stagedir/clogs ++ cd debian/builddir && \ ++ ${MAKE} ${MAKE_ARGS} DESTDIR=${CURDIR}/debian/stagedir install ++ cat ChangeLog ChangeLog.zoo >debian/stagedir/clogs/ChangeLog ++ cat doc/ChangeLog doc/ChangeLog.fsf >debian/stagedir/clogs/ChangeLog.doc ++ #cat lib/ChangeLog lib/ChangeLog.fsf >debian/stagedir/clogs/ChangeLog.lib ++ #cat src/ChangeLog src/ChangeLog-97 src/ChangeLog-96 src/ChangeLog-9395 \ ++ # src/ChangeLog-9194 >debian/stagedir/clogs/ChangeLog.src ++ cp src/ChangeLog debian/stagedir/clogs/ChangeLog.src ++ cp contrib/ChangeLog debian/stagedir/clogs/ChangeLog.contrib ++ cp diff/ChangeLog debian/stagedir/clogs/ChangeLog.diff ++ #cp m4/ChangeLog debian/stagedir/clogs/ChangeLog.m4 ++ #cp man/ChangeLog debian/stagedir/clogs/ChangeLog.man ++ #cp tools/ChangeLog debian/stagedir/clogs/ChangeLog.tools ++ # fat and nonsensical to ship this ++ rm -f debian/stagedir/usr/share/cvs/contrib/rcs-5.7-commitid.patch ++ # uses csh ++ rm -f debian/stagedir/usr/share/cvs/contrib/sccs2rcs ++ # unsafe ++ rm -f debian/stagedir/usr/share/cvs/contrib/commit_prep ++ rm -f debian/stagedir/usr/share/cvs/contrib/cvs_acls ++ rm -f debian/stagedir/usr/share/cvs/contrib/log ++ rm -f debian/stagedir/usr/share/cvs/contrib/log_accum ++ rm -f debian/stagedir/usr/share/cvs/contrib/mfpipe ++ rm -f debian/stagedir/usr/share/cvs/contrib/rcslock ++ # we ship cvs-switchroot(1) instead ++ rm -f debian/stagedir/usr/share/cvs/contrib/newcvsroot ++ dh_installchangelogs debian/stagedir/clogs/ChangeLog ++ dh_installdocs ++ dh_install ++ dh_installinfo ++ dh_installman ++ dh_link ++ dh_strip ++ dh_compress -X.pdf ++ cd debian/cvs/usr/share/cvs/contrib && chmod +x descend.sh rcs2sccs.sh ++ dh_fixperms ++ dh_installdeb ++ dh_shlibdeps ++ dh_gencontrol ++ dh_md5sums ++ dh_builddeb -- -Zgzip -z9 ++ ++binary: binary-indep binary-arch ++.PHONY: binary binary-arch binary-indep build build-arch build-indep clean +--- cvs-1.12.13+real.orig/debian/source.lintian-overrides ++++ cvs-1.12.13+real/debian/source.lintian-overrides +@@ -0,0 +1,13 @@ ++# desired method of keeping changes is as VCS working tree ++cvs source: direct-changes-in-diff-but-no-patch-system * ++ ++# not my fault ++cvs source: source-contains-cvs-control-dir zlib/CVS ++cvs source: source-contains-cvs-control-dir zlib/os2/CVS ++cvs source: deprecated-configure-filename ++ ++# not part of the binary package, and not legally a problem ++cvs source: license-problem-gfdl-non-official-text doc/getdate-cvs.texi * ++ ++# no, thanks ++cvs source: no-dep5-copyright +--- cvs-1.12.13+real.orig/debian/source/format ++++ cvs-1.12.13+real/debian/source/format +@@ -0,0 +1 @@ ++1.0 +--- cvs-1.12.13+real.orig/debian/upstream/signing-key.asc ++++ cvs-1.12.13+real/debian/upstream/signing-key.asc +@@ -0,0 +1,25 @@ ++-----BEGIN PGP PUBLIC KEY BLOCK----- ++Version: GnuPG v1 ++ ++mQGiBD4u3XQRBACN7F6Ducb4gaJw7LJPCaNbk4+eW/EWjiC+aoJhnNocWGfeKM2d ++NYRDPuyW6IqAmMPGBq0HAdSmi64BQg5mC8Q7NGujfzVDefACELuwQRUxFadbcAXn ++1eGUHGsst93FFwlhY+SH3Yuo1plvNBnlMhDt9ylT3/s38zKG874+A44L4wCg/7fh ++u0zqxFA0w22lXobhkKO4upED/0zA5BJ+d8brNLe6RpIQXTUzPxZ+UoU5RG9wlzv/ ++zabSS6eAPpmeoIPeKdSwRO/G0/f3Qn/vxDKVTqRzNKpusKJz8TS+gDBZSFjQ1L3U ++TL6qh5kdnTy/yETg8wiUMXVaTqWtXP2eFEoHoto6dVP46BuULqQK980EmR6jg/ul ++EGC/BACD5iO81tygsm6OBEu59hJ+GykU60+9Mzz1/qPYdejJmJkmdoJZWplJULGD ++270nQlDarPJzMCpyrUzAZYdnmO6dwic/4hIxJENQ3GBrhbdr6YuuNgTxIXJJxTH7 ++qTJqRrHLw9Cvk1oPFYlzE2vQuDNlrqxXg/V06l4/ZJfotj3mI7RNRGVyZWsgUi4g ++UHJpY2UgKEdldCBDVlMgU3VwcG9ydCBhdCA8aHR0cDovL3hpbWJpb3QuY29tPiEp ++IDxkZXJla0B4aW1iaW90LmNvbT6IYQQTEQIAGQUCPi7ddAQLBwMCAxUCAwMWAgEC ++HgECF4AAEgkQLD1OTBfyMaQHZUdQRwABAVEoAJ9o9E9Ya1dKUi1xRepkcpWqzjjt ++OgCgqSQSvoBA3NLu8/US2RAb+Xn1vAK5AQ0EPi7dehAEAJgUmO0vNtZJj4qUyyFd ++lw9wH9jQVRwblKxItr/0eO28ta+JOXWH668/wcyJFbVCulanS/o1crbq1bq3662Q ++EiHaZuB4hUJHCmkrfnxSvyw+w3tvk1ByiWw4uhsIiYCLpq6h/w9Yv0bSXOctGWFv ++/dnZw1f/N1PLU955Ze7hofVrAAMGA/9dw6G1LznEO2zjfTYHZtEKSlAtvRGqyOQc ++7htMOXagUpPAF/KGHnBETWVyuEfNNW1c/EQ3LQi+L23q9u0L+cAcWiR4SBCejEII ++3bFE3hPLGxfa0LamJrq0kkSDoYm6OWB4WNPSGBCSZywwdLnLjqXiCU1+rT6qZcvN ++JEKFAJUOA4hOBBgRAgAGBQI+Lt16ABIJECw9TkwX8jGkB2VHUEcAAQE9AACfTWlS ++/WpC3LgkF8rcbbap9M8U/RkAoL2DhkJHX3uYYJzagVUiWJffkLnR ++=hls5 ++-----END PGP PUBLIC KEY BLOCK----- +--- cvs-1.12.13+real.orig/debian/watch ++++ cvs-1.12.13+real/debian/watch +@@ -0,0 +1,3 @@ ++version=3 ++opts="dversionmangle=s/^[0-9]+://;s/\+real$//,pgpsigurlmangle=s/$/.sig/" \ ++http://ftp.gnu.org/non-gnu/cvs/source/feature/1.12.13/ cvs-([0-9.]*)\.tar\.gz +--- cvs-1.12.13+real.orig/diff/analyze.c ++++ cvs-1.12.13+real/diff/analyze.c +@@ -358,7 +358,7 @@ + else + { + int c; +- struct partition part; ++ struct partition part = { 0, 0, 0, 0 }; + + /* Find a point of correspondence in the middle of the files. */ + +--- cvs-1.12.13+real.orig/diff/diff3.c ++++ cvs-1.12.13+real/diff/diff3.c +@@ -1439,14 +1439,13 @@ + int const mapping[3], rev_mapping[3]; + { + int i; +- int oddoneout; ++ int oddoneout = 0; + char *cp; + struct diff3_block *ptr; + int line; + size_t length; +- int dontprint; ++ int dontprint = 0; + static int skew_increment[3] = { 2, 3, 1 }; /* 0==>2==>1==>3 */ +- char const *line_prefix = tab_align_flag ? "\t" : " "; + + for (ptr = diff; ptr; ptr = D_NEXT (ptr)) + { +@@ -1503,7 +1502,7 @@ + line = 0; + do + { +- printf_output (line_prefix); ++ printf_output (tab_align_flag ? "\t" : " "); + cp = D_RELNUM (ptr, realfile, line); + length = D_RELLEN (ptr, realfile, line); + write_output (cp, length); +@@ -1555,11 +1554,12 @@ + int leading_dot, start, num; + { + write_output (".\n", 2); +- if (leading_dot) ++ if (leading_dot) { + if (num == 1) + printf_output ("%ds/^\\.//\n", start); + else + printf_output ("%d,%ds/^\\.//\n", start, start + num - 1); ++ } + } + + /* +@@ -1750,11 +1750,12 @@ + do + { + c = getc (infile); +- if (c == EOF) ++ if (c == EOF) { + if (ferror (infile)) + diff3_perror_with_exit ("input file"); + else if (feof (infile)) + diff3_fatal ("input file shrank"); ++ } + cc = c; + write_output (&cc, 1); + } +@@ -1804,7 +1805,7 @@ + linesread += i; + while (0 <= --i) + while ((c = getc (infile)) != '\n') +- if (c == EOF) ++ if (c == EOF) { + if (ferror (infile)) + diff3_perror_with_exit ("input file"); + else if (feof (infile)) +@@ -1813,6 +1814,7 @@ + diff3_fatal ("input file shrank"); + return conflicts_found; + } ++ } + } + /* Copy rest of common file. */ + while ((c = getc (infile)) != EOF || !(ferror (infile) | feof (infile))) +--- cvs-1.12.13+real.orig/diff/ifdef.c ++++ cvs-1.12.13+real/diff/ifdef.c +@@ -189,7 +189,7 @@ + + default: + { +- int value; ++ int value = 0; + char *speclim; + + f = scan_printf_spec (spec); +@@ -322,7 +322,7 @@ + + default: + { +- int value; ++ int value = 0; + char *speclim; + + f = scan_printf_spec (spec); +--- cvs-1.12.13+real.orig/diff/side.c ++++ cvs-1.12.13+real/diff/side.c +@@ -122,7 +122,7 @@ + break; + + case '\b': +- if (in_position != 0 && --in_position < out_bound) ++ if (in_position != 0 && --in_position < out_bound) { + if (out_position <= in_position) + /* Add spaces to make up for suppressed tab past out_bound. */ + for (; out_position < in_position; out_position++) +@@ -133,6 +133,7 @@ + cc = c; + write_output (&cc, 1); + } ++ } + break; + + case '\f': +--- cvs-1.12.13+real.orig/diff/util.c ++++ cvs-1.12.13+real/diff/util.c +@@ -235,7 +235,7 @@ + close (pipes[0]); + } + +- execl (PR_PROGRAM, PR_PROGRAM, "-f", "-h", name, 0); ++ execl (PR_PROGRAM, PR_PROGRAM, "-f", "-h", name, NULL); + pfatal_with_name (PR_PROGRAM); + } + else +--- cvs-1.12.13+real.orig/doc/HACKING.DOCS ++++ cvs-1.12.13+real/doc/HACKING.DOCS +@@ -16,7 +16,9 @@ + @strong{ ... } Similar to @emph{}, but the effect is to + bracket with asterisks in info files (* ... *) + and in bold in PDF & probably in postscript & +- HTML. ++ HTML. It will cause spurious links in info if ++ used in some circumstances; if in doubt, use ++ @empy{ ... } instead then. + @noindent Suppresses indentation of the following + paragraph. This can ocassionally be useful + after examples and the like. +@@ -44,3 +46,6 @@ + + For more on using texinfo docs, see the `info texinfo' documentation or + http://www.gnu.org/manual/texinfo/texinfo.html . ++ ++ ++$MirOS: src/gnu/usr.bin/cvs/doc/HACKING.DOCS,v 1.3 2010/09/19 19:42:52 tg Exp $ +--- cvs-1.12.13+real.orig/doc/Makefile.am ++++ cvs-1.12.13+real/doc/Makefile.am +@@ -1,4 +1,5 @@ + ## Process this file with automake to produce Makefile.in ++# $MirOS: src/gnu/usr.bin/cvs/doc/Makefile.am,v 1.5 2017/01/09 22:54:22 tg Exp $ + # Makefile for GNU CVS documentation (excluding man pages - see ../man). + # + # Copyright (C) 1986-2005 The Free Software Foundation, Inc. +@@ -84,7 +85,7 @@ + # It is possible that an implicit .ms.ps target could be safely defined. I + # don't recall looking into it. + cvs-paper.ps: cvs-paper.ms +- $(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t ++ $(ROFF) -t -p -ms -Tps -P-p28c,21c $(srcdir)/cvs-paper.ms >cvs-paper.ps-t + cp cvs-paper.ps-t $@ + -@rm -f cvs-paper.ps-t + +@@ -92,8 +93,8 @@ + # Nothing in $(srcdir) be rebuilt, and this will always be rebuilt when it + # is dependant on cvs-paper.ps and cvs-paper.ps isn't distributed. + $(srcdir)/cvs-paper.pdf: cvs-paper.ms +- $(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t +- ps2pdf cvs-paper.ps-t cvs-paper.pdf-t ++ $(ROFF) -t -p -ms -Tps -P-p28c,21c $(srcdir)/cvs-paper.ms >cvs-paper.ps-t ++ ps2pdf14 -sPAPERSIZE=pa4 cvs-paper.ps-t cvs-paper.pdf-t + cp cvs-paper.pdf-t $@ + -@rm -f cvs-paper.pdf-t cvs-paper.ps-t + +--- cvs-1.12.13+real.orig/doc/cvs.man.footer ++++ cvs-1.12.13+real/doc/cvs.man.footer +@@ -1,3 +1,4 @@ ++.\" $MirOS: src/gnu/usr.bin/cvs/doc/cvs.man.footer,v 1.6 2017/01/08 19:42:05 tg Exp $ + .SH "AUTHORS" + .TP + Dick Grune +@@ -26,15 +27,13 @@ + Have helped maintain + .B cvs + for many years. +-.TP ++.PP + And many others too numerous to mention here. + .SH "SEE ALSO" + The most comprehensive manual for CVS is +-Version Management with CVS by Per Cederqvist et al. Depending on +-your system, you may be able to get it with the +-.B info CVS +-command or it may be available as cvs.pdf (Portable Document Format), +-cvs.ps (PostScript), cvs.texinfo (Texinfo source), or cvs.html. ++Version Management with CVS by Per Cederqvist et al. (see ++.I NOTE ++at top). + .SP + For CVS updates, more information on documentation, software related + to CVS, development of CVS, and more, see: +@@ -43,7 +42,6 @@ + .PD 0 + .IP "" 4 + .B http://www.nongnu.org/cvs/ +-.in -1i + .SP + .BR ci ( 1 ), + .BR co ( 1 ), +@@ -54,5 +52,7 @@ + .BR patch ( 1 ), + .BR rcs ( 1 ), + .BR rcsdiff ( 1 ), ++.BR rcsintro ( 1 ), + .BR rcsmerge ( 1 ), +-.BR rlog ( 1 ). ++.BR rlog ( 1 ), ++.BR re_format ( 7 ). +--- cvs-1.12.13+real.orig/doc/cvs.man.header ++++ cvs-1.12.13+real/doc/cvs.man.header +@@ -1,3 +1,5 @@ ++.\" $MirOS: src/gnu/usr.bin/cvs/doc/cvs.man.header,v 1.6 2016/11/08 21:12:15 tg Exp $ ++.\" + .\" This is the man page for CVS. It is auto-generated from the + .\" cvs.man.header, cvs.texinfo, & cvs.man.footer files. Please make changes + .\" there. A full copyright & license notice may also be found in cvs.texinfo. +@@ -5,6 +7,7 @@ + .\" Man page autogeneration, including this header file, is + .\" Copyright 2004-2005 The Free Software Foundation, Inc., + .\" Derek R. Price, & Ximbiot <http://ximbiot.com>. ++.\" Copyright (c) 2004, 2010, 2012, 2016 mirabilos <m@mirbsd.org>. + .\" + .\" This documentation is free software; you can redistribute it and/or modify + .\" it under the terms of the GNU General Public License as published by +@@ -23,7 +26,9 @@ + .ds Rv \\$3 + .ds Dt \\$4 + .. +-.TH CVS 1 "\*(Dt" ++.de IX ++.. ++.TH CVS 1 + .\" Full space in nroff; half space in troff + .de SP + .if n .sp +@@ -51,11 +56,82 @@ + .IX "release control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system" + .IX "source control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system" + .IX revisions "cvs command" "" "\fLcvs\fP \- source control" +-This manpage is a summary of some of the features of +-\fBcvs\fP. It is auto-generated from an appendix of the CVS manual. +-For more in-depth documentation, please consult the +-Cederqvist manual (via the +-.B info CVS +-command or otherwise, +-as described in the SEE ALSO section of this manpage). Cross-references +-in this man page refer to nodes in the same. ++.\" ++This manual page is a summary of parts of the \fBcvs\fP documentation ++and automatically generated from an appendix of the CVS manual ++(the \fICederqvist\fP), which is also the target of all cross-references ++found in this manual page; please refer to the full CVS manual ++for more in-depth documentation of the Concurrent Versions System. ++.PP ++If you're reading this manual page as part of the MirBSD online (HTML) ++manual pages archive, follow the cvs(GNU) link to the Cederqvist ++(and the cvsclient(GNU) link to the client/server protocol description, ++if necessary). ++.PP ++If you installed ++.B cvs ++via the Debian or MirPorts Framework package management systems, ++.br ++.RS ++.B /usr/mpkg/share/doc/cvs/cvs.pdf ++(MirPorts Framework) or ++.br ++.B /usr/share/doc/cvs/cvs.pdf ++(Debian), respectively, ++.RE ++are versions of the Cederqvist rendered as books, for printing ++and reading on screen. ++.PP ++If you have a Texinfo reader such as ++.B info ++installed (part of the base system on MirBSD; part of the ++.I info ++package on Debian), you can read the Cederqvist by entering: ++.br ++.RS ++.B info ++.I cvs ++.RE ++.PP ++Quick introduction to ++.B info ++so you aren't immediately lost: ++.RS 4n ++.TP 3n ++.I arrow\ keys ++to move on the page ++.TP 3n ++.I Tab ++to move to the next hyperlink ++.TP 3n ++.I Return ++to activate the hyperlink under the cursor ++.TP 3n ++.BI l \ (lowercase\ ell) ++to go to the previously visited page ++.TP 3n ++.IB Page\ Up/ b,\ Page\ Down/Space ++to move by screen pages, including advancing to the previous ++(or next, respectively) section at the first (last) screen page ++.TP 3n ++.B p,\ n ++to go to the previous (next) page on the current navigation hierarchy level ++.TP 3n ++.B t ++to go to the "Top" page, i.e. the start of the document ++.TP 3n ++.BI / <search-term>Return ++to start a search from the current cursor position and jump to the first result ++.TP 3n ++.BI / Return ++to jump to the next result in an ongoing search ++.TP 3n ++.B q ++to exit the ++.B info ++viewer ++.RE ++.PP ++Other ways to read further documentation are described in the ++.I SEE\ ALSO ++section of this manual page. +--- cvs-1.12.13+real.orig/doc/cvs.texinfo ++++ cvs-1.12.13+real/doc/cvs.texinfo +@@ -1,6 +1,17 @@ + \input texinfo @c -*-texinfo-*- + @comment Documentation for CVS. + @setfilename cvs.info ++@tex ++ % set PA4 paper size (can print on both DIN ISO A4 and US Letter) ++ \globaldefs = 1% ++ \afourpaper% ++ \internalpagesizes{46\baselineskip}{160mm}% ++ {\voffset}{\hoffset}% ++ {\bindingoffset}{36pt}% ++ {28truecm}{21truecm}% ++ \globaldefs = 0% ++@end tex ++@comment $MirOS: src/gnu/usr.bin/cvs/doc/cvs.texinfo,v 1.29 2017/01/09 22:54:23 tg Exp $ + @macro copyleftnotice + @noindent + Copyright @copyright{} 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +@@ -9,7 +20,11 @@ + + @multitable @columnfractions .12 .88 + @item Portions +-@item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005 ++@item @tab Copyright @copyright{} 2003, 2004, 2005, 2007, 2009, 2010, 2011, ++ 2013, 2014, 2015, 2016 ++ mirabilos, The MirOS Project ++@item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, ++ 2007 + Derek R. Price, + @item @tab Copyright @copyright{} 2002, 2003, 2004, 2005 + Ximbiot @url{http://ximbiot.com}, +@@ -51,6 +66,15 @@ + @comment MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + @comment GNU General Public License for more details. + ++@comment It should be noted that the Texinfo manual is distributed ++@comment under the above notice in all forms, except for the manpage ++@comment generated from it, and that the manual and the source code ++@comment of CVS often need to stay synchronised; therefore, exchanging ++@comment between these three entities under these two licences seems ++@comment to be granted, and the statement above can be interpreted as ++@comment explicit dual-licence grant. As a major contributor to this ++@comment documentation for MirBSD, I do not oppose. --mirabilos ++ + @c See ../README for A4 vs. US letter size. + @c When we provided A4 postscript, and people tried to + @c print it on US letter, the usual complaint was that the +@@ -103,7 +127,7 @@ + @end direntry + @dircategory Individual utilities + @direntry +-* cvs: (cvs)CVS commands. Concurrent Versions System ++* cvs: (cvs)CVS command list. Concurrent Versions System + @end direntry + + @comment The titlepage section does not appear in the Info file. +@@ -111,9 +135,9 @@ + @sp 4 + @comment The title is printed in a large font. + @center @titlefont{Version Management} +-@sp ++@sp 1 + @center @titlefont{with} +-@sp ++@sp 1 + @center @titlefont{CVS} + @sp 2 + @center for @sc{cvs} @value{VERSION} +@@ -141,13 +165,20 @@ + @node Top + @top + ++@ifnotinfo ++@anchor{Cederqvist} ++@end ifnotinfo + This info manual describes how to use and administer + @sc{cvs} version @value{VERSION}. + @end ifnottex + + @ifinfo + @copyleftnotice ++@anchor{Cederqvist} + @end ifinfo ++@iftex ++@anchor{Cederqvist} ++@end iftex + + @c This menu is pretty long. Not sure how easily that + @c can be fixed (no brilliant ideas right away)... +@@ -181,6 +212,7 @@ + * Troubleshooting:: Some tips when nothing works + * Credits:: Some of the contributors to this manual + * BUGS:: Dealing with bugs in CVS or this manual ++* CVS command list:: Alphabetical list of all CVS commands + * Index:: Index + @end menu + +@@ -742,7 +774,7 @@ + @c /home/joe/sources. But this node is too long + @c as it is; need a little reorganization... + +-@cindex :local:, setting up ++@cindex local method, setting up + @sc{cvs} can access a repository by a variety of + means. It might be on the local computer, or it might + be on a computer across the room or across the world. +@@ -1957,6 +1989,18 @@ + @code{cvs init} will enable history logging; if you + don't want that, remove the history file after running + @code{cvs init}. @xref{history file}. ++Since MirBSD CVS 1.12.13-MirOS-0AB7.8, MirPorts-19 or ++Debian cvs 2:1.12.13+real-22, only write operations ++will be logged by default; to change this, make the ++history file world-writable (but beware of the associated ++security risk) and remove the stock @samp{LogHistory} ++line in the @file{CVSROOT/config} file (@pxref{config}) ++to use the (commented-out) default or put your own there. ++Note that these versions also create the @file{val-tags} ++file writable (@pxref{CVSUMASK}), not world-writable like ++prior versions, so users who wish to commit must, with a ++default @code{CVSUMASK} of 002, be in the same group as ++the repository. + + @node Backing up + @section Backing up a repository +@@ -2103,6 +2147,9 @@ + * Write proxies:: Distributing load across several CVS servers + @end menu + ++For the protocol specification, ++@pxref{Top, the CVS client/server protocol,, cvsclient, The CVS client/server protocol}. ++ + @node Server requirements + @subsection Server requirements + +@@ -2236,7 +2283,7 @@ + through and @var{port} is the port number on the HTTP proxy server to connect + via. @var{port} defaults to 8080. + +-@strong{NOTE: An HTTP proxy server is not the same as a @sc{cvs} write proxy ++@emph{NOTE: An HTTP proxy server is not the same as a @sc{cvs} write proxy + server - please see @ref{Write proxies} for more on @sc{cvs} write proxies.} + + For example, to connect pserver via a web proxy listening on port 8000 of +@@ -2246,7 +2293,7 @@ + :pserver;proxy=www.myproxy.net;proxyport=8000:@var{pserver_connection_string} + @end example + +-@strong{NOTE: In the above example, @var{pserver_connection_string} is still ++@emph{NOTE: In the above example, @var{pserver_connection_string} is still + required to connect and authenticate to the CVS server, as noted in the + upcoming sections on password authentication, @code{gserver}, and + @code{kserver}. The example above only demonstrates a modification to the +@@ -2377,21 +2424,23 @@ + There is no need to edit @file{inetd.conf} or start a + @sc{cvs} server daemon. + +-@cindex :server:, setting up +-@cindex :ext:, setting up ++@cindex server method, setting up ++@cindex ext method, setting up + @cindex Kerberos, using kerberized rsh + @cindex SSH (rsh replacement) + @cindex rsh replacements (Kerberized, SSH, &c) + There are two access methods that you use in @code{CVSROOT} + for rsh. @code{:server:} specifies an internal rsh + client, which is supported only by some @sc{cvs} ports. ++This is not supported on most Unix-style systems. + @code{:ext:} specifies an external rsh program. By + default this is @code{rsh} (unless otherwise specified + by the @file{--with-rsh} flag to configure) but you may set the + @code{CVS_RSH} environment variable to invoke another + program which can access the remote server (for + example, @code{remsh} on HP-UX 9 because @code{rsh} is +-something different). It must be a program which can ++something different, or @code{ssh} to allow the use of secure ++and/or compressed connections). It must be a program which can + transmit data to and from the server without modifying + it; for example the Windows NT @code{rsh} is not + suitable since it by default translates between CRLF +@@ -2405,6 +2454,12 @@ + to be inapplicable; consult the documentation for your rsh + replacement. + ++In the Debian and MirBSD versions of @sc{cvs}, you can ++also specify @code{:extssh:} to force use of the Secure ++Shell, or @code{:ext=prog:} or @code{:ext=/path/to/prog:} ++to specify the remote shell to use without needing to ++touch the @code{CVS_RSH} environment variable. ++ + You may choose to specify the @var{CVS_RSH} option as a method option + in the @var{CVSROOT} string to allow you to use different connection tools + for different roots (@pxref{The connection method}). For example, allowing +@@ -2501,15 +2556,19 @@ + The @samp{--allow-root} option specifies the allowable + @sc{cvsroot} directory. Clients which attempt to use a + different @sc{cvsroot} directory will not be allowed to +-connect. If there is more than one @sc{cvsroot} +-directory which you want to allow, repeat the option. ++connect. To allow a whole class of @sc{cvsroot}, specify ++a POSIX extended regular expression to match allowed ++directories with the @samp{--allow-root-regexp} option. ++These options may be used in conjunction, and both options ++may be repeated to allow access to multiple @sc{cvsroot} ++directories and classes of directories. + (Unfortunately, many versions of @code{inetd} have very small + limits on the number of arguments and/or the total length + of the command. The usual solution to this problem is + to have @code{inetd} run a shell script which then invokes + @sc{cvs} with the necessary arguments.) + +- If your @code{inetd} wants a symbolic service ++If your @code{inetd} wants a symbolic service + name instead of a raw port number, then put this in + @file{/etc/services}: + +@@ -2675,7 +2734,7 @@ + (@code{info-cvs@@nongnu.org} or @code{bug-cvs@@nongnu.org}) if you use the + @sc{cvs} PAM support. + +-@strong{WARNING: Using PAM gives the system administrator much more ++@emph{WARNING: Using PAM gives the system administrator much more + flexibility about how @sc{cvs} users are authenticated but + no more security than other methods. See below for more.} + +@@ -2776,7 +2835,7 @@ + @cindex Login (subcommand) + @cindex Password client, using + @cindex Authenticated client, using +-@cindex :pserver:, setting up ++@cindex pserver method, setting up + To run a @sc{cvs} command on a remote repository via + the password-authenticating server, one specifies the + @code{pserver} protocol, optional username, repository host, an +@@ -2940,8 +2999,8 @@ + + @cindex GSSAPI + @cindex Security, GSSAPI +-@cindex :gserver:, setting up +-@cindex Kerberos, using :gserver: ++@cindex gserver method, setting up ++@cindex Kerberos, using gserver method + GSSAPI is a generic interface to network security + systems such as Kerberos 5. + If you have a working GSSAPI library, you can have +@@ -2992,9 +3051,9 @@ + @node Kerberos authenticated + @subsection Direct connection with Kerberos + +-@cindex Kerberos, using :kserver: ++@cindex Kerberos, using kserver method + @cindex Security, Kerberos +-@cindex :kserver:, setting up ++@cindex kserver method, setting up + The easiest way to use Kerberos is to use the Kerberos + @code{rsh}, as described in @ref{Connecting via rsh}. + The main disadvantage of using rsh is that all the data +@@ -3039,7 +3098,7 @@ + @subsection Connecting with fork + + @cindex fork, access method +-@cindex :fork:, setting up ++@cindex fork method, setting up + This access method allows you to connect to a + repository on your local disk via the remote protocol. + In other words it does pretty much the same thing as +@@ -3065,7 +3124,7 @@ + cvs -d :fork:/usr/local/cvsroot checkout foo + @end example + +-@cindex CVS_SERVER, and :fork: ++@cindex CVS_SERVER, and fork method + As with @code{:ext:}, the server is called @samp{cvs} + by default, or the value of the @code{CVS_SERVER} + environment variable. +@@ -3994,7 +4053,7 @@ + tag. + + @noindent +-@strong{WARNING: the commands in this section are ++@emph{WARNING: the commands in this section are + dangerous; they permanently discard historical + information and it can be difficult or impossible to + recover from errors. If you are a @sc{cvs} +@@ -4024,7 +4083,7 @@ + trigger warnings and will not be deleted. + + @noindent +-@strong{WARNING: Moving branch tags is very dangerous! If you think ++@emph{WARNING: Moving branch tags is very dangerous! If you think + you need the @code{-B} option, think again and ask your @sc{cvs} + administrator about it (if that isn't you). There is almost certainly + another way to accomplish what you want to accomplish.} +@@ -4055,7 +4114,7 @@ + name are ignored with a warning message. + + @noindent +-@strong{WARNING: Moving branch tags is very dangerous! If you think you ++@emph{WARNING: Moving branch tags is very dangerous! If you think you + need the @code{-B} option, think again and ask your @sc{cvs} + administrator about it (if that isn't you). There is almost certainly + another way to accomplish what you want to accomplish.} +@@ -4904,7 +4963,7 @@ + directory need not change anything. Therefore, there + is no conflict. + +-@strong{WARNING: In versions of @sc{cvs} prior to 1.12.2, there was a ++@emph{WARNING: In versions of @sc{cvs} prior to 1.12.2, there was a + major problem with using @samp{-kk} on merges. Namely, @samp{-kk} + overrode any default keyword expansion mode set in the archive file in + the repository. This could, unfortunately for some users, cause data +@@ -5968,7 +6027,7 @@ + locks, have all developers put "edit -c", "commit -c" in their + .cvsrc file, and turn on watches in the repository. This + prevents them from doing a @code{cvs edit} if anyone is +-already editting the file. It also may ++already editing the file. It also may + be possible to use plain watches together with suitable + procedures (not enforced by software), to avoid having + two people edit at the same time. +@@ -6630,7 +6689,7 @@ + put "edit -c" and "commit -c" into all .cvsrc files, + and make files default to read only by turning on watches + or putting "cvs -r" into all .cvsrc files. +-This prevents multiple people from editting a file at ++This prevents multiple people from editing a file at + the same time (unless explicitly overriden with @samp{-f}). + + @c I'm a little dissatisfied with this presentation, +@@ -6875,7 +6934,7 @@ + There are two additional options that @code{cvs edit} understands as of + @sc{cvs} client and server versions 1.12.10 but @code{cvs watch} does not. + The first is @code{-c}, which causes @code{cvs edit} to fail if anyone else +-is editting the file. This is probably only useful when @samp{edit -c} and ++is editing the file. This is probably only useful when @samp{edit -c} and + @samp{commit -c} are specified in all developers' @file{.cvsrc} files. This + behavior may be overriden this via the @code{-f} option, which overrides + @code{-c} and allows multiple edits to succeed. +@@ -7182,6 +7241,15 @@ + @item $@splitrcskeyword{Date}$ + The date and time (UTC) the revision was checked in. + ++@cindex Mdocdate keyword ++@item $@splitrcskeyword{Mdocdate}$ ++The date (UTC) the revision was checked in, in a format suitable ++for the Berkeley mdoc macro processing. ++ ++@example ++$Mdocdate: January 9 2017 $ ++@end example ++ + @cindex Header keyword + @item $@splitrcskeyword{Header}$ + A standard header containing the full pathname of the +@@ -7550,13 +7618,14 @@ + A list may be used. The this example: + + @example +- # Add a "MyBSD" keyword and restrict keyword +- # expansion to the MyBSD, Name and Date keywords. ++ # Add a "MyBSD" keyword and restrict keyword expansion ++ # to the MyBSD, Name, Date and Mdocdate keywords. + LocalKeyword=MyBSD=CVSHeader +- KeywordExpand=iMyBSD,Name,Date ++ KeywordExpand=iMyBSD,Name,Date,Mdocdate + @end example + +-would allow $@splitrcskeyword{MyBSD}$, $@splitrcskeyword{Name}$, and ++would allow $@splitrcskeyword{MyBSD}$, $@splitrcskeyword{Name}$, ++$@splitrcskeyword{Mdocdate} and + $@splitrcskeyword{Date}$ to be expanded. + + It is also possible to configure an exclusion list +@@ -7742,7 +7811,7 @@ + $ cvs import -m "Import of FSF v. 0.05" fsf/wdiff FSF_DIST WDIFF_0_05 + @end example + +-@strong{WARNING: If you use a release tag that already exists in one of the ++@emph{WARNING: If you use a release tag that already exists in one of the + repository archives, files removed by an import may not be detected.} + + For files that have not been modified locally, the newly created +@@ -7786,7 +7855,12 @@ + + You can also revert local changes completely and return + to the latest vendor release by changing the `head' +-revision back to the vendor branch on all files. For ++revision back to the vendor branch on all files. This ++does, however, produce weird results if you should ever ++edit this file again, for anyone looking at the output ++from the @code{log} command or CVSweb. To fix this, ++first commit a revision of the file which equals the ++vendor branch, then use @code{admin} @samp{-b}. For + example, if you have a checked-out copy of the sources + in @file{~/work.d/wdiff}, and you want to revert to the + vendor's version for all the files in that directory, +@@ -7853,6 +7927,10 @@ + @code{cvs import}. It takes as an argument the vendor + branch to import to. The default is @samp{-b 1.1.1}. + ++Vendor branches can only be in the format 1.1.x where ++@samp{x} is an @emph{uneven} number, because branch ++tags use even numbers. ++ + For example, suppose that there are two teams, the red + team and the blue team, that are sending you sources. + You want to import the red team's efforts to branch +@@ -8094,7 +8172,9 @@ + This appendix describes the overall structure of + @sc{cvs} commands, and describes some commands in + detail (others are described elsewhere; for a quick +-reference to @sc{cvs} commands, @pxref{Invoking CVS}). ++reference to @sc{cvs} commands, @pxref{Invoking CVS}, ++and for an alphabetical list of all @sc{cvs} commands, ++@pxref{CVS command list}). + @c The idea is that we want to move the commands which + @c are described here into the main body of the manual, + @c in the process reorganizing the manual to be +@@ -8117,19 +8197,20 @@ + * Global options:: Options you give to the left of cvs_command + * Common options:: Options you give to the right of cvs_command + * Date input formats:: Acceptable formats for date specifications +-* admin:: Administration ++* admin:: Administration front-end for RCS + * annotate:: What revision modified each line of a file? + * checkout:: Checkout sources for editing + * commit:: Check files into the repository + * diff:: Show differences between revisions + * export:: Export sources from CVS, similar to checkout +-* history:: Show status of files and users ++* history:: Show repository access history + * import:: Import sources into CVS, using vendor branches +-* log:: Show log messages for files ++* log:: Print out history information for files + * ls & rls:: List files in the repository +-* rdiff:: 'patch' format diffs between releases ++* rdiff:: Create 'patch' format diffs between revisions + * release:: Indicate that a directory is no longer in use + * server & pserver:: Act as a server for a client on stdin/stdout ++* suck:: Download RCS ,v file raw + * update:: Bring work tree in sync with repository + @end menu + +@@ -8375,6 +8456,31 @@ + @samp{-N} in the @file{~/.cvsrc} entry for @samp{log}, + you may need to use @samp{-f} to show the tag names. + ++@item -g ++Forges group-writable permissions on files in the working copy. ++This option is typically used when you have multiple users sharing ++a single checked out source tree, allowing them to operate their ++shells with a less dangerous umask at the expense of @sc{cvs} security. ++To use this feature, create a directory to hold the checked-out ++source tree, set it to a private group, and set up the directory ++such that files created under it inherit the gid of the directory. ++On BSD systems, this occurs automatically. On SYSV systems and ++GNU/Linux, the sgid bit must be set on the directory for this. ++The users who are to share the checked out tree must be placed in ++that group which owns the directory. ++ ++Note that the sharing of a single checked-out source tree is very ++different from giving several users access to a common @sc{cvs} repository. ++Access to a common @sc{cvs} repository already maintains shared group-write ++permissions and does not require this option. ++ ++Due to the security implications, setting this option globally in ++your @file{.cvsrc} file is strongly discouraged; if you must, ensure ++all source checkouts are "firewalled" within a private group or a ++private mode 0700 directory. ++ ++This option is a MidnightBSD extension merged into Debian and MirBSD @sc{cvs}. ++ + @item -H + @itemx --help + Display usage information about the specified @samp{cvs_command} +@@ -8498,7 +8604,7 @@ + which are listed with the individual commands, may have + different behavior from one @sc{cvs} command to the other). + +-@strong{Note: the @samp{history} command is an exception; it supports ++@emph{Note: the @samp{history} command is an exception; it supports + many options that conflict even with these standard options.} + + @table @code +@@ -8523,7 +8629,7 @@ + slightly different way; @pxref{history options}). + + For a complete description of the date formats accepted by @sc{cvs}, +-@ref{Date input formats}. ++@pxref{Date input formats}. + @c What other formats should we accept? I don't want + @c to start accepting a whole mess of non-standard + @c new formats (there are a lot which are in wide use in +@@ -8610,7 +8716,7 @@ + @code{annotate}, @code{checkout}, @code{export}, + @code{rdiff}, @code{rtag}, and @code{update}. + +-@strong{WARNING: The @code{commit} and @code{remove} ++@emph{WARNING: The @code{commit} and @code{remove} + commands also have a + @samp{-f} option, but it has a different behavior for + those commands. See @ref{commit options}, and +@@ -8631,7 +8737,7 @@ + @code{checkout}, @code{diff}, @code{export}, @code{import}, + @code{rdiff}, and @code{update} commands. + +-@strong{WARNING: Prior to CVS version 1.12.2, the @samp{-k} flag ++@emph{WARNING: Prior to CVS version 1.12.2, the @samp{-k} flag + overrode the @samp{-kb} indication for a binary file. This could + sometimes corrupt binary files. @xref{Merging and keywords}, for + more.} +@@ -8660,7 +8766,7 @@ + specified to run in the modules + database (@pxref{modules}); this option bypasses it). + +-@strong{Note: this is not the same as the @samp{cvs -n} ++@emph{Note: this is not the same as the @samp{cvs -n} + program option, which you can specify to the left of a cvs command!} + + Available with the @code{checkout}, @code{commit}, @code{export}, +@@ -8688,14 +8794,21 @@ + @item -r @var{tag}[:@var{date}] + @cindex HEAD, special tag + @cindex BASE, special tag ++@cindex BASE, special date + Use the revision specified by the @var{tag} argument (and the @var{date} + argument for the commands which accept it) instead of the + default @dfn{head} revision. As well as arbitrary tags defined + with the @code{tag} or @code{rtag} command, two special tags are + always available: @samp{HEAD} refers to the most recent version +-available in the repository, and @samp{BASE} refers to the ++available in the repository (also known as the tip of the @samp{MAIN} ++branch, also known as trunk; the name of a branch refers to its tip; ++this version of @sc{cvs} introduces @samp{.bhead}, but only for the ++@sc{diff} command, for the same), and @samp{BASE} refers to the + revision you last checked out into the current working directory. + ++@c fixed: HEAD is changed now; .bhead is the name of the branch, ++@c but added for cases where it is unknown. ++@c --mirabilos + @c FIXME: What does HEAD really mean? I believe that + @c the current answer is the head of the default branch + @c for all cvs commands except diff. For diff, it +@@ -8735,12 +8848,19 @@ + the name of a branch is interpreted as the most recent + revision on that branch. + ++As a Debian and MirBSD @sc{cvs} extension, specifying @samp{BASE} as the ++@var{date} portion of the argument yields the @emph{base revision} of the ++branch specified by the @var{tag} portion of the argument, i.e. the revision ++on the parent branch the @var{tag} branch split off, or, where both ++branches were the same. ++This option has not received very much testing, beware! ++ + Specifying the @samp{-q} global option along with the + @samp{-r} command option is often useful, to suppress + the warning messages when the @sc{rcs} file + does not contain the specified tag. + +-@strong{Note: this is not the same as the overall @samp{cvs -r} option, ++@emph{Note: this is not the same as the overall @samp{cvs -r} option, + which you can specify to the left of a @sc{cvs} command!} + + @samp{-r @var{tag}} is available with the @code{commit} and @code{history} +@@ -8765,7 +8885,7 @@ + + @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @node admin +-@appendixsec admin---Administration ++@appendixsec admin---Administration front-end for RCS + @cindex Admin (subcommand) + + @itemize @bullet +@@ -9135,7 +9255,10 @@ + + @itemize @bullet + @item +-Synopsis: annotate [options] files@dots{} ++Synopsis: ++annotate [options] files@dots{} ++ ++rannotate [options] files@dots{} + @item + Requires: repository. + @item +@@ -9144,7 +9267,10 @@ + + For each file in @var{files}, print the head revision + of the trunk, together with information on the last +-modification for each line. ++modification for each line. If backwards annotation ++is requested, show the first modification after the ++specified revision. (Backwards annotation currently ++appears to be broken.) + + @menu + * annotate options:: annotate options +@@ -9160,6 +9286,10 @@ + them): + + @table @code ++@item -b ++Backwards, show when a line was removed. ++Currently appears to be broken. ++ + @item -l + Local directory only, no recursion. + +@@ -9455,8 +9585,7 @@ + + @itemize @bullet + @item +-Synopsis: commit [-lnRf] [-m 'log_message' | +--F file] [-r revision] [files@dots{}] ++Synopsis: commit [-lnRf] [-m 'log_message' | -F file] [-r revision] [files@dots{}] + @item + Requires: working directory, repository. + @item +@@ -9501,8 +9630,11 @@ + + At @code{commit}, a unique commitid is placed in the @sc{rcs} + file inside the repository. All files committed at once +-get the same commitid. The commitid can be retrieved with +-the @code{log} and @code{status} command; see @ref{log}, ++get the same commitid, a string consisting only of hexadecimal ++digits (usually 16 in GNU @sc{cvs}, 19 in Debian and MirBSD @sc{cvs}). ++FSF GNU @sc{cvs} 1.11 and OpenBSD OpenCVS do not support commitids yet. ++The commitid can be retrieved with ++the @code{log} and @code{status} command; see @ref{log} and + @ref{File status}. + + @menu +@@ -9685,7 +9817,7 @@ + under them will be compared. + + The exit status for diff is different than for other +-@sc{cvs} commands; for details @ref{Exit status}. ++@sc{cvs} commands; for details @pxref{Exit status}. + + @menu + * diff options:: diff options +@@ -10394,7 +10526,7 @@ + + @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @node history +-@appendixsec history---Show status of files and users ++@appendixsec history---Show repository access history + @cindex history (subcommand) + + @itemize @bullet +@@ -10425,7 +10557,7 @@ + (@file{$CVSROOT/CVSROOT/history}) with read and write permissions for all + users (@pxref{Creating a repository}). + +-@strong{Note: @code{history} uses @samp{-f}, @samp{-l}, ++@emph{Note: @code{history} uses @samp{-f}, @samp{-l}, + @samp{-n}, and @samp{-p} in ways that conflict with the + normal use inside @sc{cvs} (@pxref{Common options}).} + +@@ -10774,12 +10906,14 @@ + + @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @node log +-@appendixsec log---Print out log information for files ++@appendixsec log---Print out history information for files + @cindex log (subcommand) + + @itemize @bullet + @item + Synopsis: log [options] [files@dots{}] ++ ++rlog [options] [files@dots{}] + @item + Requires: repository, working directory. + @item +@@ -10805,7 +10939,7 @@ + the @code{$TZ} environment variable, which can be set to + govern how @code{log} displays dates. + +-@strong{Note: @code{log} uses @samp{-R} in a way that conflicts ++@emph{Note: @code{log} uses @samp{-R} in a way that conflicts + with the normal use inside @sc{cvs} (@pxref{Common options}).} + + @menu +@@ -10997,13 +11131,15 @@ + + @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @node ls & rls +-@appendixsec ls & rls ++@appendixsec ls & rls---List files in the repository + @cindex ls (subcommand) + @cindex rls (subcommand) + + @itemize @bullet + @item + ls [-e | -l] [-RP] [-r tag[:date]] [-D date] [path@dots{}] ++ ++rls [-e | -l] [-RP] [-r tag[:date]] [-D date] [path@dots{}] + @item + Requires: repository for @code{rls}, repository & working directory for + @code{ls}. +@@ -11095,7 +11231,7 @@ + + @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @node rdiff +-@appendixsec rdiff---'patch' format diffs between releases ++@appendixsec rdiff---Create 'patch' format diffs between revisions + @cindex rdiff (subcommand) + + @itemize @bullet +@@ -11173,6 +11309,9 @@ + @item -c + Use the context diff format. This is the default format. + ++@item -p ++Show which C function each change is in. ++ + @item -s + Create a summary change report instead of a patch. The + summary includes information about files that were +@@ -11231,7 +11370,7 @@ + + @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @node release +-@appendixsec release---Indicate that a Module is no longer in use ++@appendixsec release---Indicate that a directory is no longer in use + @cindex release (subcommand) + + @itemize @bullet +@@ -11282,7 +11421,7 @@ + succeeds. If this flag is not given your files will + remain in your working directory. + +-@strong{WARNING: The @code{release} command deletes ++@emph{WARNING: The @code{release} command deletes + all directories and files recursively. This + has the very serious side-effect that any directory + that you have created inside your checked-out sources, +@@ -11386,6 +11525,25 @@ + @end table + + @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++@node suck ++@appendixsec suck---Download RCS ,v file raw ++@cindex suck (subcommand) ++ ++@itemize @bullet ++@item ++suck module/pa/th ++@item ++Requires: repository ++@end itemize ++ ++Locates the file module/pa/th,v or module/pa/Attic/th,v and downloads ++it raw as RCS comma-v file. ++ ++Output consists of the real pathname of the comma-v file, relative to ++the CVS repository, followed by a newline and the binary file content ++immediately thereafter. ++ ++@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @node update + @appendixsec update---Bring work tree in sync with repository + @cindex update (subcommand) +@@ -11635,6 +11793,8 @@ + references to where each command or feature is + described in detail. For other references run the + @code{cvs --help} command, or see @ref{Index}. ++For an alphabetical list of all @sc{cvs} commands, ++@pxref{CVS command list}). + + A @sc{cvs} command looks like: + +@@ -11646,10 +11806,15 @@ + + @table @code + @item --allow-root=@var{rootdir} +-Specify legal @sc{cvsroot} directory (server only) (not +-in @sc{cvs} 1.9 and older). See @ref{Password ++Specify acceptable @sc{cvsroot} directory (server only). ++Appeared in @sc{cvs} 1.10. See @ref{Password + authentication server}. + ++@item --allow-root-regexp=@var{rootdir} ++Specify a POSIX extended regular expression which matches acceptable ++@sc{cvsroot} directories (server only). Appeared in @sc{cvs} ++1.12.14. See @ref{Password authentication server}. ++ + @item -a + Authenticate all communication (client only) (not in @sc{cvs} + 1.9 and older). See @ref{Global options}. +@@ -11669,6 +11834,10 @@ + Do not read the @file{~/.cvsrc} file. See @ref{Global + options}. + ++@item -g ++Set the umask to allow group writable permissions in ++the working copy. See @ref{Global options}. ++ + @item -H + @itemx --help + Print a help message. See @ref{Global options}. +@@ -11730,6 +11899,7 @@ + @example + $@splitrcskeyword{Author}: joe $ + $@splitrcskeyword{Date}: 1993/12/09 03:21:13 $ ++$@splitrcskeyword{Mdocdate}: December 9 1993 $ + $@splitrcskeyword{CVSHeader}: files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $ + $@splitrcskeyword{Header}: /home/files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $ + $@splitrcskeyword{Id}: file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $ +@@ -11756,6 +11926,7 @@ + + @table @code + @c ------------------------------------------------------------ ++@anchor{add} + @item add [@var{options}] [@var{files}@dots{}] + Add a new file/directory. See @ref{Adding files}. + +@@ -11877,7 +12048,8 @@ + @item -j @var{tag}[:@var{date}] + Merge in the change specified by @var{tag}, or when @var{date} is specified + and @var{tag} is a branch tag, the version from the branch @var{tag} as it +-existed on @var{date}. See @ref{checkout options}. ++existed on @var{date}. See @ref{checkout options}. Also, ++see @ref{Common options}. + + @item -k @var{kflag} + Use @var{kflag} keyword expansion. See +@@ -11907,7 +12079,7 @@ + @item -r @var{tag}[:@var{date}] + Checkout the revision already tagged with @var{tag} or, when @var{date} is + specified and @var{tag} is a branch tag, the version from the branch @var{tag} +-as it existed on @var{date}. This . See @ref{Common options}. ++as it existed on @var{date}. See @ref{Common options}. + + @item -s + Like -c, but include module status. See @ref{checkout options}. +@@ -11992,6 +12164,7 @@ + @end table + + @c ------------------------------------------------------------ ++@anchor{edit} + @item edit [@var{options}] [@var{files}@dots{}] + Get ready to edit a watched file. See @ref{Editing files}. + +@@ -12003,7 +12176,7 @@ + @ref{Editing files}. + + @item -c +-Check edits: Edit fails if someone else is already editting the file. ++Check edits: Edit fails if someone else is already editing the file. + Requires a @sc{cvs} client and server both of version 1.12.10 or greater. + + @item -f +@@ -12018,6 +12191,7 @@ + @end table + + @c ------------------------------------------------------------ ++@anchor{editors} + @item editors [@var{options}] [@var{files}@dots{}] + See who is editing a watched file. See @ref{Watch information}. + +@@ -12163,14 +12337,17 @@ + @end table + + @c ------------------------------------------------------------ ++@anchor{init} + @item init + Create a @sc{cvs} repository if it doesn't exist. See + @ref{Creating a repository}. + + @c ------------------------------------------------------------ ++@anchor{kserver} + @item kserver + Kerberos authenticated server. +-See @ref{Kerberos authenticated}. ++@xref{server & pserver}. ++@xref{Kerberos authenticated}. + + @c ------------------------------------------------------------ + @item log [@var{options}] [@var{files}@dots{}] +@@ -12211,21 +12388,55 @@ + @end table + + @c ------------------------------------------------------------ ++@anchor{login} + @item login + Prompt for password for authenticating server. See + @ref{Password authentication client}. + + @c ------------------------------------------------------------ ++@anchor{logout} + @item logout + Remove stored password for authenticating server. See + @ref{Password authentication client}. + + @c ------------------------------------------------------------ ++@anchor{ls} ++@item ls [@var{options}] [@var{path}@dots{}] ++List files available from CVS. See @ref{ls & rls}. ++ ++@table @code ++@item -d ++Show dead revisions (with tag when specified). ++See @ref{ls & rls options}. ++ ++@item -e ++Display in CVS/Entries format. ++ ++@item -l ++Display all details. ++ ++@item -P ++Prune empty directories. See @ref{Moving directories}. ++ ++@item -R ++List recursively. @xref{Recursive behavior}. ++ ++@item -D @var{date} ++Show files from date. See @ref{Common options}. ++ ++@item -r @var{rev} ++Show files with revision or tag. ++@end table ++ ++@c ------------------------------------------------------------ ++@anchor{pserver} + @item pserver + Password authenticated server. +-See @ref{Password authentication server}. ++@xref{server & pserver}. ++@xref{Password authentication server}. + + @c ------------------------------------------------------------ ++@anchor{rannotate} + @item rannotate [@var{options}] [@var{modules}@dots{}] + Show last revision where each line was modified. See + @ref{annotate}. +@@ -12298,7 +12509,7 @@ + @end table + + @c ------------------------------------------------------------ +-@item release [@var{options}] @var{directory} ++@item release [@var{options}] @var{directories}@dots{} + Indicate that a directory is no longer in use. See + @ref{release}. + +@@ -12308,6 +12519,7 @@ + @end table + + @c ------------------------------------------------------------ ++@anchor{remove} + @item remove [@var{options}] [@var{files}@dots{}] + Remove an entry from the repository. See @ref{Removing files}. + +@@ -12324,6 +12536,7 @@ + @end table + + @c ------------------------------------------------------------ ++@anchor{rlog} + @item rlog [@var{options}] [@var{files}@dots{}] + Print out history information for modules. See @ref{log}. + +@@ -12361,9 +12574,40 @@ + @end table + + @c ------------------------------------------------------------ ++@anchor{rls} ++@item rls [@var{options}] [@var{path}@dots{}] ++List files in a module. See @ref{ls & rls}. ++ ++@table @code ++@item -d ++Show dead revisions (with tag when specified). ++See @ref{ls & rls options}. ++ ++@item -e ++Display in CVS/Entries format. ++ ++@item -l ++Display all details. ++ ++@item -P ++Prune empty directories. See @ref{Moving directories}. ++ ++@item -R ++List recursively. @xref{Recursive behavior}. ++ ++@item -D @var{date} ++Show files from date. See @ref{Common options}. ++ ++@item -r @var{rev} ++Show files with revision or tag. ++@end table ++ ++@c ------------------------------------------------------------ ++@anchor{rtag} + @item rtag [@var{options}] @var{tag} @var{modules}@dots{} + Add a symbolic tag to a module. +-See @ref{Revisions} and @ref{Branching and merging}. ++@xref{Tagging by date/tag}. ++@xref{Creating a branch}. + + @table @code + @item -a +@@ -12407,10 +12651,18 @@ + @end table + + @c ------------------------------------------------------------ ++@anchor{server} + @item server +-Rsh server. See @ref{Connecting via rsh}. ++SSH/rsh server. ++@xref{server & pserver}. ++@xref{Connecting via rsh}. + + @c ------------------------------------------------------------ ++@item suck @var{module/filename} ++Download RCS ,v file raw. See @ref{suck}. ++ ++@c ------------------------------------------------------------ ++@anchor{status} + @item status [@var{options}] @var{files}@dots{} + Display status information in a working directory. See + @ref{File status}. +@@ -12427,9 +12679,11 @@ + @end table + + @c ------------------------------------------------------------ ++@anchor{tag} + @item tag [@var{options}] @var{tag} [@var{files}@dots{}] + Add a symbolic tag to checked out version of files. +-See @ref{Revisions} and @ref{Branching and merging}. ++@xref{Tagging the working directory}. ++@xref{Creating a branch}. + + @table @code + @item -b +@@ -12465,6 +12719,7 @@ + @end table + + @c ------------------------------------------------------------ ++@anchor{unedit} + @item unedit [@var{options}] [@var{files}@dots{}] + Undo an edit command. See @ref{Editing files}. + +@@ -12541,6 +12796,7 @@ + @end table + + @c ------------------------------------------------------------ ++@anchor{version} + @item version + @cindex version (subcommand) + +@@ -12548,6 +12804,7 @@ + is remote, display both the client and server versions. + + @c ------------------------------------------------------------ ++@anchor{watch} + @item watch [on|off|add|remove] [@var{options}] [@var{files}@dots{}] + + on/off: turn on/off read-only checkouts of files. See +@@ -12572,6 +12829,7 @@ + @end table + + @c ------------------------------------------------------------ ++@anchor{watchers} + @item watchers [@var{options}] [@var{files}@dots{}] + See who is watching a file. See @ref{Watch information}. + +@@ -12711,7 +12969,7 @@ + @item @var{mname} [ options ] @var{dir} [ @var{files}@dots{} ] + In the simplest case, this form of module definition + reduces to @samp{@var{mname} @var{dir}}. This defines +-all the files in directory @var{dir} as module mname. ++all the files in directory @var{dir} as module @var{mname}. + @var{dir} is a relative path (from @code{$CVSROOT}) to a + directory of source in the source repository. In this + case, on checkout, a single directory called +@@ -12975,7 +13233,7 @@ + mechanisms outside @sc{cvs}, to insert any necessary + changes. + +-@strong{WARNING: do not use @code{COPY} with ++@emph{WARNING: do not use @code{COPY} with + @sc{cvs} 1.9 or earlier - such versions of @sc{cvs} will + copy one version of your file over the other, wiping + out the previous contents.} +@@ -13779,14 +14037,11 @@ + @file{loginfo} supports: + + @table @t +-@item @{stVv@} ++@item @{sVv@} + File attributes, where: + @table @t + @item s + file name +-@item T +-tag name of destination, or the empty string when there is no associated +-tag name (this usually means the trunk) + @item V + old version number (pre-checkin) + @item v +@@ -13795,7 +14050,7 @@ + @end table + + For example, some valid format strings are @samp{%%}, +-@samp{%s}, @samp{%@{s@}}, and @samp{%@{stVv@}}. ++@samp{%s}, @samp{%@{s@}}, and @samp{%@{sVv@}}. + + @cindex loginfo (admin file), updating legacy repositories + @cindex compatibility notes, loginfo admin file +@@ -14442,6 +14697,7 @@ + random string of printable characters of at least 16 + characters length. Users should assume that it may + someday grow to at most 256 characters in length. ++Currently, Debian and MirBSD @sc{cvs} uses 19 characters. + @end table + + If you want to pass a value to the administrative files +@@ -14613,7 +14869,7 @@ + @cindex KeywordExpand, in CVSROOT/config + @item KeywordExpand=@var{value} + Specify @samp{i} followed by a list of keywords to be expanded +-(for example, @samp{KeywordExpand=iMYCVS,Name,Date}), ++(for example, @samp{KeywordExpand=iMYCVS,Name,Date,Mdocdate}), + or @samp{e} followed by a list of keywords not to be expanded + (for example, @samp{KeywordExpand=eCVSHeader}). + For more on keyword expansion, see @ref{Configuring keyword expansion}. +@@ -14657,7 +14913,9 @@ + Default of @samp{TOEFWUPCGMAR} (or simply @samp{all}) will log + all transactions. Any subset of the default is + legal. (For example, to only log transactions that modify the +-@file{*,v} files, use @samp{LogHistory=TMAR}.) To disable history logging ++@file{*,v} files, use @samp{LogHistory=TMAR} which is nowadays ++set by @code{cvs init} by default.) ++To disable history logging + completely, use @samp{LogHistory=}. + + @cindex MaxCommentLeaderLength, in CVSROOT/config +@@ -14747,7 +15005,7 @@ + @samp{stat()} function to see if it has changed (see warning below) + before rereading. The default value is @samp{always}. + +-@strong{Note: the `stat' mode can cause CVS to pause for up to ++@emph{Note: the `stat' mode can cause CVS to pause for up to + one extra second per directory committed. This can be less IO and + CPU intensive but is not recommended for use with large repositories} + +@@ -14884,6 +15142,7 @@ + read-only NFS repositories. + + @item $CVSUMASK ++@anchor{CVSUMASK} + Controls permissions of files in the repository. See + @ref{File permissions}. + +@@ -15172,6 +15431,7 @@ + specific reason for denying authorization. Check that + the username and password specified are correct and + that the @code{CVSROOT} specified is allowed by @samp{--allow-root} ++or @samp{--allow-root-regexp} + in @file{inetd.conf}. See @ref{Password authenticated}. + + @item cvs @var{command}: conflict: removed @var{file} was modified by second party +@@ -15614,21 +15874,21 @@ + access method you are using. + + @table @code +-@cindex :ext:, troubleshooting ++@cindex ext method, troubleshooting + @item :ext: + Try running the rsh program from the command line. For + example: "rsh servername cvs -v" should print @sc{cvs} + version information. If this doesn't work, you need to + fix it before you can worry about @sc{cvs} problems. + +-@cindex :server:, troubleshooting ++@cindex server method, troubleshooting + @item :server: + You don't need a command line rsh program to use this + access method, but if you have an rsh program around, + it may be useful as a debugging tool. Follow the + directions given for :ext:. + +-@cindex :pserver:, troubleshooting ++@cindex pserver method, troubleshooting + @item :pserver: + Errors along the lines of "connection refused" typically indicate + that inetd isn't even listening for connections on port 2401 +@@ -15806,6 +16066,16 @@ + the file @file{doc/ChangeLog} in the @sc{cvs} source + distribution. + ++The MirOS Project uses @sc{cvs} heavily in MirOS BSD and the ++MirPorts Framework and has enhanced it as well as packaged it ++as the "new" Debian CVS package. Responsible: ++ ++@display ++Thorsten Glaser <@t{tg@@mirbsd.org}> ++@end display ++ ++CVS Homepage: @url{http://www.nongnu.org/cvs/} ++ + @c --------------------------------------------------------------------- + @node BUGS + @appendix Dealing with bugs in CVS or this manual +@@ -15910,6 +16180,49 @@ + comprehensive, detailed list of known bugs. + + @c --------------------------------------------------------------------- ++@node CVS command list ++@appendix Alphabetical list of all CVS commands ++ ++@xref{Cederqvist, the introduction into the manual, CVS manual Table of Contents}. ++ ++@menu ++* add:: Add a new file/directory to the repository ++* admin:: Administration front-end for RCS ++* annotate:: Show last revision where each line was modified ++* checkout:: Checkout sources for editing ++* commit:: Check files into the repository ++* diff:: Show differences between revisions ++* edit:: Get ready to edit a watched file ++* editors:: See who is editing a watched file ++* export:: Export sources from CVS, similar to checkout ++* history:: Show repository access history ++* import:: Import sources into CVS, using vendor branches ++* init:: Create a CVS repository ++* kserver:: Act in Kerberos server mode ++* log:: Print out history information for files ++* login:: Prompt for password for authenticating server ++* logout:: Removes entry in .cvspass for remote repository ++* ls:: List files available from CVS ++* pserver:: Act in password server mode ++* rannotate:: Show last revision where each line of module was modified ++* rdiff:: Create 'patch' format diffs between revisions ++* release:: Indicate that a work subdirectory is no longer in use ++* remove:: Remove an entry from the repository ++* rlog:: Print out history information for a module ++* rls:: List files in a module ++* rtag:: Add a symbolic tag to a module ++* server:: Act in server mode ++* suck:: Download RCS ,v file raw ++* status:: Display status information on checked out files ++* tag:: Add a symbolic tag to checked out version of files ++* unedit:: Undo an edit command ++* update:: Bring work tree in sync with repository ++* version:: Show current CVS version(s) ++* watch:: Set watches ++* watchers:: See who is watching a file ++@end menu ++ ++@c --------------------------------------------------------------------- + @node Index + @unnumbered Index + @cindex Index +--- cvs-1.12.13+real.orig/doc/cvsclient.texi ++++ cvs-1.12.13+real/doc/cvsclient.texi +@@ -1,6 +1,17 @@ + \input texinfo @c -*- texinfo -*- + + @setfilename cvsclient.info ++@tex ++ % set PA4 paper size (can print on both DIN ISO A4 and US Letter) ++ \globaldefs = 1% ++ \afourpaper% ++ \internalpagesizes{46\baselineskip}{160mm}% ++ {\voffset}{\hoffset}% ++ {\bindingoffset}{36pt}% ++ {28truecm}{21truecm}% ++ \globaldefs = 0% ++@end tex ++@comment $MirOS: src/gnu/usr.bin/cvs/doc/cvsclient.texi,v 1.8 2017/01/09 22:54:26 tg Exp $ + @include version-client.texi + + @dircategory Programming +@@ -12,8 +23,9 @@ + @top CVS Client/Server + + This document describes the client/server protocol used by CVS. It does +-not describe how to use or administer client/server CVS; see the regular +-CVS manual for that. This is version @value{VERSION} of the protocol ++not describe how to use or administer client/server CVS; for that, ++@pxref{Top, the regular CVS manual,, cvs, the regular CVS manual}. ++This is version @value{VERSION} of the protocol + specification---@xref{Introduction}, for more on what this version number + means. + +@@ -53,7 +65,7 @@ + user documentation, @file{cvs.texinfo}, for that information. The + protocol is non-proprietary (anyone who wants to is encouraged to + implement it) and an implementation, known as CVS, is available under +-the GNU Public License. The CVS distribution, containing this ++the GNU General Public License. The CVS distribution, containing this + implementation, @file{cvs.texinfo}, and a copy (possibly more or less up + to date than what you are reading now) of this document, + @file{cvsclient.texi}, can be found at the usual GNU FTP sites, with a +@@ -1227,6 +1239,13 @@ + directory and @emph{not} a fully qualified @code{CVSROOT} variable. + The @code{Root} request need not have been previously sent. + ++@item suck \n ++Response expected: yes. ++Actually do a @code{cvs suck} command. ++This uses a previous @code{Argument} request (only one, because the ++@code{cvs suck} CLI command takes only one). ++This is an extension specific to MirBSD, MirPorts and Debian. ++ + @item update \n + Response expected: yes. Actually do a @code{cvs update} command. This + uses any previous @code{Argument}, @code{Directory}, @code{Entry}, +@@ -1268,7 +1287,7 @@ + C: Directory . + C: 1dir + C: add +-S: M Directory /u/cvsroot/1dir/nsdir added to the repository ++S: M Directory /u/cvsroot/1dir/nsdir put under version control + S: ok + @end example + +--- cvs-1.12.13+real.orig/doc/getdate.texi ++++ cvs-1.12.13+real/doc/getdate.texi +@@ -1,14 +1,22 @@ + @c GNU date syntax documentation ++@c $MirOS: src/gnu/usr.bin/cvs/doc/getdate.texi,v 1.8 2016/11/08 23:04:36 tg Exp $ + + @c Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + @c 2003, 2004, 2005 Free Software Foundation, Inc. + +-@c Permission is granted to copy, distribute and/or modify this document +-@c under the terms of the GNU Free Documentation License, Version 1.1 or +-@c any later version published by the Free Software Foundation; with no +-@c Invariant Sections, with no Front-Cover Texts, and with no Back-Cover +-@c Texts. A copy of the license is included in the ``GNU Free +-@c Documentation License'' file as part of this distribution. ++@c Copyright (c) 2007, 2010 mirabilos <m@mirbsd.org> ++ ++@comment This file is part of the CVS distribution. ++ ++@comment CVS is free software; you can redistribute it and/or modify ++@comment it under the terms of the GNU General Public License as published by ++@comment the Free Software Foundation; either version 2, or (at your option) ++@comment any later version. ++ ++@comment CVS is distributed in the hope that it will be useful, ++@comment but WITHOUT ANY WARRANTY; without even the implied warranty of ++@comment MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++@comment GNU General Public License for more details. + + @node Date input formats + @chapter Date input formats +@@ -55,8 +63,7 @@ + * Day of week items:: Monday and others. + * Relative items in date strings:: next tuesday, 2 years ago. + * Pure numbers in date strings:: 19931219, 1440. +-* Seconds since the Epoch:: @@1078100502. +-* Specifying time zone rules:: TZ="America/New_York", TZ="UTC0". ++* Seconds since the Epoch:: @@1101064456 + * Authors of get_date:: Bellovin, Eggert, Salz, Berets, et al. + @end menu + +@@ -113,8 +120,7 @@ + + @cindex language, in dates + @cindex time zone item +-The output of the @command{date} command +-is not always acceptable as a date string, ++The output of @command{date} is not always acceptable as a date string, + not only because of the language problem, but also because there is no + standard meaning for time zone items like @samp{IST}. When using + @command{date} to generate a date string intended to be parsed later, +@@ -124,15 +130,21 @@ + + @example + $ LC_ALL=C TZ=UTC0 date +-Mon Mar 1 00:21:42 UTC 2004 +-$ TZ=UTC0 date +'%Y-%m-%d %H:%M:%SZ' +-2004-03-01 00:21:42Z ++Fri Dec 15 19:48:05 UTC 2000 ++$ TZ=UTC0 date +"%Y-%m-%d %H:%M:%SZ" ++2000-12-15 19:48:05Z ++$ date --iso-8601=seconds # a GNU extension ++2000-12-15T11:48:05-0800 ++$ date --iso-8601=ns # a GNU extension ++2004-02-29T16:21:42,692722128-0800 + $ date --iso-8601=ns | tr T ' ' # --iso-8601 is a GNU extension. + 2004-02-29 16:21:42,692722128-0800 + $ date --rfc-2822 # a GNU extension +-Sun, 29 Feb 2004 16:21:42 -0800 +-$ date +'%Y-%m-%d %H:%M:%S %z' # %z is a GNU extension. +-2004-02-29 16:21:42 -0800 ++Fri, 15 Dec 2000 11:48:05 -0800 ++$ date +"%Y-%m-%d %H:%M:%S %z" # %z is a GNU extension. ++2000-12-15 11:48:05 -0800 ++$ date +'@@%s' # %s is a MirOS extension. ++@@1101064210 + $ date +'@@%s.%N' # %s and %N are GNU extensions. + @@1078100502.692722128 + @end example +@@ -234,11 +246,10 @@ + More generally, the time of day may be given as + @samp{@var{hour}:@var{minute}:@var{second}}, where @var{hour} is + a number between 0 and 23, @var{minute} is a number between 0 and +-59, and @var{second} is a number between 0 and 59 possibly followed by +-@samp{.} or @samp{,} and a fraction containing one or more digits. +-Alternatively, +-@samp{:@var{second}} can be omitted, in which case it is taken to +-be zero. ++59, and @var{second} is a number between 0 and 59, with an optional ++fraction separated by @samp{.} or @samp{,} consisting of digits. ++Alternatively, @samp{:@var{second}} can be omitted, in which case ++it is taken to be zero. + + @findex am @r{in date strings} + @findex pm @r{in date strings} +@@ -299,8 +310,7 @@ + described in the previous section. + + If neither a time zone item nor a time zone correction is supplied, +-time stamps are interpreted using the rules of the default time zone +-(@pxref{Specifying time zone rules}). ++time stamps are interpreted using the rules of the default time zone. + + + @node Day of week items +@@ -389,7 +399,7 @@ + date strings like @samp{this thursday}. + + When a relative item causes the resulting date to cross a boundary +-where the clocks were adjusted, typically for daylight saving time, ++where the clocks were adjusted, typically for daylight-saving time, + the resulting date and time are adjusted accordingly. + + The fuzz in units can cause problems with relative items. For +@@ -401,7 +411,7 @@ + @example + $ date -R + Thu, 31 Jul 2003 13:02:39 -0700 +-$ date --date='-1 month' +'Last month was %B?' ++$ date --date="-1 month" +'Last month was %B?' + Last month was July? + $ date --date="$(date +%Y-%m-15) -1 month" +'Last month was %B!' + Last month was June! +@@ -440,86 +450,49 @@ + @node Seconds since the Epoch + @section Seconds since the Epoch + +-If you precede a number with @samp{@@}, it represents an internal time +-stamp as a count of seconds. The number can contain an internal +-decimal point (either @samp{.} or @samp{,}); any excess precision not +-supported by the internal representation is truncated toward minus +-infinity. Such a number cannot be combined with any other date +-item, as it specifies a complete time stamp. ++If you give a string consisting of @samp{@@} followed by a decimal ++number, it is parsed as an internal time stamp, @sc{utc} for ++@acronym{POSIX} compliant systems, @sc{tai} for systems which keep ++time correctly, and directly mapped to a kernel time. The implementation ++handles an optional fraction separated by @samp{.} or @samp{,} and ++truncates to a supported internal precision, rounding towards the ++negative infinity. Since the kernel time stamp represents complete ++date and time information, it cannot be combined with any other ++format given. + + @cindex beginning of time, for @acronym{POSIX} + @cindex epoch, for @acronym{POSIX} +-Internally, computer times are represented as a count of seconds since +-an epoch---a well-defined point of time. On @acronym{GNU} and +-@acronym{POSIX} systems, the epoch is 1970-01-01 00:00:00 @sc{utc}, so +-@samp{@@0} represents this time, @samp{@@1} represents 1970-01-01 +-00:00:01 @sc{utc}, and so forth. @acronym{GNU} and most other +-@acronym{POSIX}-compliant systems support such times as an extension +-to @acronym{POSIX}, using negative counts, so that @samp{@@-1} +-represents 1969-12-31 23:59:59 @sc{utc}. +- +-Traditional Unix systems count seconds with 32-bit two's-complement +-integers and can represent times from 1901-12-13 20:45:52 through +-2038-01-19 03:14:07 @sc{utc}. More modern systems use 64-bit counts +-of seconds with nanosecond subcounts, and can represent all the times +-in the known lifetime of the universe to a resolution of 1 nanosecond. +- +-On most systems, these counts ignore the presence of leap seconds. +-For example, on most systems @samp{@@915148799} represents 1998-12-31 +-23:59:59 @sc{utc}, @samp{@@915148800} represents 1999-01-01 00:00:00 +-@sc{utc}, and there is no way to represent the intervening leap second +-1998-12-31 23:59:60 @sc{utc}. +- +-@node Specifying time zone rules +-@section Specifying time zone rules +- +-@vindex TZ +-Normally, dates are interpreted using the rules of the current time +-zone, which in turn are specified by the @env{TZ} environment +-variable, or by a system default if @env{TZ} is not set. To specify a +-different set of default time zone rules that apply just to one date, +-start the date with a string of the form @samp{TZ="@var{rule}"}. The +-two quote characters (@samp{"}) must be present in the date, and any +-quotes or backslashes within @var{rule} must be escaped by a +-backslash. +- +-For example, with the @acronym{GNU} @command{date} command you can +-answer the question ``What time is it in New York when a Paris clock +-shows 6:30am on October 31, 2004?'' by using a date beginning with +-@samp{TZ="Europe/Paris"} as shown in the following shell transcript: +- +-@example +-$ export TZ="America/New_York" +-$ date --date='TZ="Europe/Paris" 2004-10-31 06:30' +-Sun Oct 31 01:30:00 EDT 2004 +-@end example ++Although the date syntax here can represent any possible time since the ++year zero, computer integers often cannot represent such a wide range of ++time. On @acronym{POSIX} systems, the clock starts at 1970-01-01 00:00:00 ++@sc{utc}: @acronym{POSIX} does not require support for times before the ++@acronym{POSIX} Epoch and times far in the future. @acronym{GNU} and ++traditional Unix systems have 32-bit signed @code{time_t} and can represent ++times from 1901-12-13 20:45:52 through 2038-01-19 03:14:07 @sc{utc}, such ++that @samp{@@0} represents the epoch, @samp{@@1} represents 1970-01-01 ++00:00:01 @sc{utc}, and so forth, whereas @samp{@@-1}, not mandated by ++@acronym{POSIX}, represents 1969-12-31 23:59:59 @sc{utc}. Systems with ++64-bit signed @code{time_t} can represent all the times in the known ++lifetime of the universe. Modern @acronym{UNIX} systems also can give ++precise timecounters in the nanosecond or even attosecond range with ++a resolution often only a small multiply, like 10000, of the CPU ++frequency (on fast machines). ++ ++@acronym{POSIX} conformant systems do not count leap seconds, and their ++kernel time is a seconds-since-epoch representation of @sc{utc} (which ++is a calendar time); the MirOS family of operating systems keeps time ++as seconds since the epoch, @sc{tai}, correctly counting leap seconds ++and providing conversion functions. Most MirBSD ports have already ++switched to a 64-bit signed @code{time_t}, some are using a ++@sc{djb}-compatible @code{tai_t} internally. The rest of this ++document has not been throughoutly checked for @sc{utc} vs @sc{tai} ++correctness. For @acronym{POSIX}ly broken systems, @samp{@@915148799} ++represents 1998-12-31 23:59:59 @sc{utc}, @samp{@@915148800} represents ++1999-01-01 00:00:00 @sc{utc}, and there is no way to represent the ++intervening leap second 1998-12-31 23:59:60 @sc{utc}. Also, calculation ++of time deltas is wrong, such as the age of the MirOS founder is already ++off by more than 10 seconds in 2000. + +-In this example, the @option{--date} operand begins with its own +-@env{TZ} setting, so the rest of that operand is processed according +-to @samp{Europe/Paris} rules, treating the string @samp{2004-10-31 +-06:30} as if it were in Paris. However, since the output of the +-@command{date} command is processed according to the overall time zone +-rules, it uses New York time. (Paris was normally six hours ahead of +-New York in 2004, but this example refers to a brief Halloween period +-when the gap was five hours.) +- +-A @env{TZ} value is a rule that typically names a location in the +-@uref{http://www.twinsun.com/tz/tz-link.htm, @samp{tz} database}. +-A recent catalog of location names appears in the +-@uref{http://twiki.org/cgi-bin/xtra/tzdate, TWiki Date and Time +-Gateway}. A few non-@acronym{GNU} hosts require a colon before a +-location name in a @env{TZ} setting, e.g., +-@samp{TZ=":America/New_York"}. +- +-The @samp{tz} database includes a wide variety of locations ranging +-from @samp{Arctic/Longyearbyen} to @samp{Antarctica/South_Pole}, but +-if you are at sea and have your own private time zone, or if you are +-using a non-@acronym{GNU} host that does not support the @samp{tz} +-database, you may need to use a @acronym{POSIX} rule instead. Simple +-@acronym{POSIX} rules like @samp{UTC0} specify a time zone without +-daylight saving time; other rules can specify simple daylight saving +-regimes. @xref{TZ Variable,, Specifying the Time Zone with @code{TZ}, +-libc, The GNU C Library}. + + @node Authors of get_date + @section Authors of @code{get_date} +@@ -545,3 +518,11 @@ + This chapter was originally produced by Fran@,{c}ois Pinard + (@email{pinard@@iro.umontreal.ca}) from the @file{getdate.y} source code, + and then edited by K.@: Berry (@email{kb@@cs.umb.edu}). ++ ++The version of this chapter you are reading comes with CVS 1.12 (also in ++Debian) and the MirOS family of operating systems; it is based upon an ++older version of the @acronym{GNU} coreutils manual which is not yet ++restricted by the licencing conditions of the GNU Free Documentation ++License, but more freely redistributable. Appropriate changes for ++the in-tree @code{get_date} version of CVS have been applied. ++The MirOS version is maintained by Thorsten Glaser @email{tg@@mirbsd.de}. +--- cvs-1.12.13+real.orig/doc/mkman.pl ++++ cvs-1.12.13+real/doc/mkman.pl +@@ -1,10 +1,12 @@ + #! @PERL@ ++# $MirOS: src/gnu/usr.bin/cvs/doc/mkman.pl,v 1.6 2016/11/08 21:12:06 tg Exp $ + # + # Generate a man page from sections of a Texinfo manual. + # + # Copyright 2004 The Free Software Foundation, + # Derek R. Price, + # & Ximbiot <http://ximbiot.com> ++# Copyright (c) 2004, 2010 mirabilos <m@mirbsd.org> + # + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by +@@ -62,7 +64,7 @@ + if $keyword =~ /^(strong|sc|code|file|samp)$/; + return "\\fI" + if $keyword =~ /^(emph|var|dfn)$/; +- die "no handler for keyword \`$keyword', found at line $. of file \`$file'\n"; ++ die "no handler for keyword '$keyword', found at line $. of file '$file'\n"; + } + + +@@ -72,8 +74,12 @@ + { + my ($file, $parent, $keyword, $content) = @_; + +- return "see node \`$content\\(aq in the CVS manual" +- if $keyword =~ /^(p?x)?ref$/; ++ return "node \\(aq$content\\(aq in the CVS manual" ++ if $keyword =~ /^ref$/; ++ return "See node \\(aq$content\\(aq in the CVS manual" ++ if $keyword =~ /^xref$/; ++ return "see node \\(aq$content\\(aq in the CVS manual" ++ if $keyword =~ /^pxref$/; + return "\\fP\\fP$content" + if $keyword =~ /^splitrcskeyword$/; + +@@ -91,11 +97,11 @@ + for my $file (@ARGV) + { + my $fh = new IO::File "< $file" +- or die "Failed to open file \`$file': $!"; ++ or die "Failed to open file '$file': $!"; + + if ($file !~ /\.(texinfo|texi|txi)$/) + { +- print stderr "Passing \`$file' through unprocessed.\n"; ++ print stderr "Passing '$file' through unprocessed.\n"; + # Just cat any file that doesn't look like a Texinfo source. + while (my $line = $fh->getline) + { +@@ -104,7 +110,7 @@ + next; + } + +- print stderr "Processing \`$file'.\n"; ++ print stderr "Processing '$file'.\n"; + $texi_num++; + my $gotone = 0; + my $inblank = 0; +@@ -143,6 +149,9 @@ + s/\@bullet({}|\b)/\\(bu/g; + s/\@dots({}|\b)/\\&.../g; + ++ # Hack for GNU groff with nroff -Tutf8 ++ s/-/\\-/g; ++ + # Examples should be indented and otherwise untouched + if (/^\@example$/) + { +@@ -356,7 +365,7 @@ + s/\@([{}])/$1/g; + + # Verify we haven't left commands unprocessed. +- die "Unprocessed command at line $. of file \`$file': " ++ die "Unprocessed command at line $. of file '$file': " + . ($1 ? "$1\n" : "<EOL>\n") + if /^(?>(?:[^\@]|\@\@)*)\@(\w+|.|$)/; + +--- cvs-1.12.13+real.orig/lib/Makefile.am ++++ cvs-1.12.13+real/lib/Makefile.am +@@ -136,7 +136,7 @@ + check_PROGRAMS += getdate + getdate_SOURCES = \ + error.c \ +- getdate.y ++ getdate.c + ## This source file was added only for the getdate test program when compiled + ## with GNULIB's error.c. + getdate_SOURCES += \ +--- cvs-1.12.13+real.orig/lib/allocsa.h ++++ cvs-1.12.13+real/lib/allocsa.h +@@ -19,7 +19,9 @@ + #ifndef _ALLOCSA_H + #define _ALLOCSA_H + ++#ifdef HAVE_ALLOCA_H + #include <alloca.h> ++#endif + #include <stddef.h> + #include <stdlib.h> + +--- cvs-1.12.13+real.orig/lib/chdir-long.c ++++ cvs-1.12.13+real/lib/chdir-long.c +@@ -39,9 +39,7 @@ + # define O_DIRECTORY 0 + #endif + +-#ifndef PATH_MAX +-# error "compile this file only if your system defines PATH_MAX" +-#endif ++#ifdef PATH_MAX + + struct cd_buf + { +@@ -269,6 +267,8 @@ + } + #endif + ++#endif /* PATH_MAX */ ++ + /* + Local Variables: + compile-command: "gcc -DTEST_CHDIR=1 -DHAVE_CONFIG_H -I.. -g -O -W -Wall chdir-long.c libcoreutils.a" +--- cvs-1.12.13+real.orig/lib/getcwd.c ++++ cvs-1.12.13+real/lib/getcwd.c +@@ -151,7 +151,7 @@ + size_t allocated = size; + size_t used; + +-#if HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD ++#if HAVE_PARTLY_WORKING_GETCWD + /* The system getcwd works, except it sometimes fails when it + shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT. If + AT_FDCWD is not defined, the algorithm below is O(N**2) and this +@@ -204,6 +204,9 @@ + ino_t dotino; + bool mount_point; + int parent_status; ++ size_t dirroom; ++ size_t namlen; ++ bool use_d_ino = true; + + /* Look at the parent directory. */ + #ifdef AT_FDCWD +@@ -244,110 +247,131 @@ + goto lose; + dotlist[dotlen++] = '/'; + #endif +- /* Clear errno to distinguish EOF from error if readdir returns +- NULL. */ +- __set_errno (0); +- while ((d = __readdir (dirstream)) != NULL) ++ for (;;) + { ++ /* Clear errno to distinguish EOF from error if readdir returns ++ NULL. */ ++ __set_errno (0); ++ d = __readdir (dirstream); ++ ++ /* When we've iterated through all directory entries without finding ++ one with a matching d_ino, rewind the stream and consider each ++ name again, but this time, using lstat. This is necessary in a ++ chroot on at least one system (glibc-2.3.6 + linux 2.6.12), where ++ .., ../.., ../../.., etc. all had the same device number, yet the ++ d_ino values for entries in / did not match those obtained ++ via lstat. */ ++ if (d == NULL && errno == 0 && use_d_ino) ++ { ++ use_d_ino = false; ++ rewinddir (dirstream); ++ d = __readdir (dirstream); ++ } ++ ++ if (d == NULL) ++ { ++ if (errno == 0) ++ /* EOF on dirstream, which can mean e.g., that the current ++ directory has been removed. */ ++ __set_errno (ENOENT); ++ goto lose; ++ } + if (d->d_name[0] == '.' && + (d->d_name[1] == '\0' || + (d->d_name[1] == '.' && d->d_name[2] == '\0'))) + continue; +- if (MATCHING_INO (d, thisino) || mount_point) ++ ++ if (use_d_ino) + { +- int entry_status; ++ bool match = (MATCHING_INO (d, thisino) || mount_point); ++ if (! match) ++ continue; ++ } ++ ++ { ++ int entry_status; + #ifdef AT_FDCWD +- entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW); ++ entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW); + #else +- /* Compute size needed for this file name, or for the file +- name ".." in the same directory, whichever is larger. +- Room for ".." might be needed the next time through +- the outer loop. */ +- size_t name_alloc = _D_ALLOC_NAMLEN (d); +- size_t filesize = dotlen + MAX (sizeof "..", name_alloc); +- +- if (filesize < dotlen) +- goto memory_exhausted; ++ /* Compute size needed for this file name, or for the file ++ name ".." in the same directory, whichever is larger. ++ Room for ".." might be needed the next time through ++ the outer loop. */ ++ size_t name_alloc = _D_ALLOC_NAMLEN (d); ++ size_t filesize = dotlen + MAX (sizeof "..", name_alloc); ++ ++ if (filesize < dotlen) ++ goto memory_exhausted; ++ ++ if (dotsize < filesize) ++ { ++ /* My, what a deep directory tree you have, Grandma. */ ++ size_t newsize = MAX (filesize, dotsize * 2); ++ size_t i; ++ if (newsize < dotsize) ++ goto memory_exhausted; ++ if (dotlist != dots) ++ free (dotlist); ++ dotlist = malloc (newsize); ++ if (dotlist == NULL) ++ goto lose; ++ dotsize = newsize; + +- if (dotsize < filesize) +- { +- /* My, what a deep directory tree you have, Grandma. */ +- size_t newsize = MAX (filesize, dotsize * 2); +- size_t i; +- if (newsize < dotsize) +- goto memory_exhausted; +- if (dotlist != dots) +- free (dotlist); +- dotlist = malloc (newsize); +- if (dotlist == NULL) +- goto lose; +- dotsize = newsize; +- +- i = 0; +- do +- { +- dotlist[i++] = '.'; +- dotlist[i++] = '.'; +- dotlist[i++] = '/'; +- } +- while (i < dotlen); +- } ++ i = 0; ++ do ++ { ++ dotlist[i++] = '.'; ++ dotlist[i++] = '.'; ++ dotlist[i++] = '/'; ++ } ++ while (i < dotlen); ++ } + +- strcpy (dotlist + dotlen, d->d_name); +- entry_status = __lstat (dotlist, &st); ++ memcpy (dotlist + dotlen, d->d_name, _D_ALLOC_NAMLEN (d)); ++ entry_status = __lstat (dotlist, &st); + #endif +- /* We don't fail here if we cannot stat() a directory entry. +- This can happen when (network) file systems fail. If this +- entry is in fact the one we are looking for we will find +- out soon as we reach the end of the directory without +- having found anything. */ +- if (entry_status == 0 && S_ISDIR (st.st_mode) +- && st.st_dev == thisdev && st.st_ino == thisino) +- break; +- } ++ /* We don't fail here if we cannot stat() a directory entry. ++ This can happen when (network) file systems fail. If this ++ entry is in fact the one we are looking for we will find ++ out soon as we reach the end of the directory without ++ having found anything. */ ++ if (entry_status == 0 && S_ISDIR (st.st_mode) ++ && st.st_dev == thisdev && st.st_ino == thisino) ++ break; ++ } + } +- if (d == NULL) +- { +- if (errno == 0) +- /* EOF on dirstream, which means that the current directory +- has been removed. */ +- __set_errno (ENOENT); +- goto lose; +- } +- else +- { +- size_t dirroom = dirp - dir; +- size_t namlen = _D_EXACT_NAMLEN (d); + +- if (dirroom <= namlen) ++ dirroom = dirp - dir; ++ namlen = _D_EXACT_NAMLEN (d); ++ ++ if (dirroom <= namlen) ++ { ++ if (size != 0) + { +- if (size != 0) +- { +- __set_errno (ERANGE); +- goto lose; +- } +- else +- { +- char *tmp; +- size_t oldsize = allocated; +- +- allocated += MAX (allocated, namlen); +- if (allocated < oldsize +- || ! (tmp = realloc (dir, allocated))) +- goto memory_exhausted; +- +- /* Move current contents up to the end of the buffer. +- This is guaranteed to be non-overlapping. */ +- dirp = memcpy (tmp + allocated - (oldsize - dirroom), +- tmp + dirroom, +- oldsize - dirroom); +- dir = tmp; +- } ++ __set_errno (ERANGE); ++ goto lose; ++ } ++ else ++ { ++ char *tmp; ++ size_t oldsize = allocated; ++ ++ allocated += MAX (allocated, namlen); ++ if (allocated < oldsize ++ || ! (tmp = realloc (dir, allocated))) ++ goto memory_exhausted; ++ ++ /* Move current contents up to the end of the buffer. ++ This is guaranteed to be non-overlapping. */ ++ dirp = memcpy (tmp + allocated - (oldsize - dirroom), ++ tmp + dirroom, ++ oldsize - dirroom); ++ dir = tmp; + } +- dirp -= namlen; +- memcpy (dirp, d->d_name, namlen); +- *--dirp = '/'; + } ++ dirp -= namlen; ++ memcpy (dirp, d->d_name, namlen); ++ *--dirp = '/'; + + thisdev = dotdev; + thisino = dotino; +--- cvs-1.12.13+real.orig/lib/getdate.c ++++ cvs-1.12.13+real/lib/getdate.c +@@ -1,7 +1,9 @@ +-/* A Bison parser, made by GNU Bison 1.875c. */ ++/* A Bison parser, made by GNU Bison 2.3. */ + +-/* Skeleton parser for Yacc-like parsing with Bison, +- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++/* Skeleton implementation for Bison's Yacc-like parsers in C ++ ++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 ++ Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -15,16 +17,24 @@ + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software +- Foundation, Inc., 59 Temple Place - Suite 330, +- Boston, MA 02111-1307, USA. */ ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, ++ Boston, MA 02110-1301, USA. */ ++ ++/* As a special exception, you may create a larger work that contains ++ part or all of the Bison parser skeleton and distribute that work ++ under terms of your choice, so long as that work isn't itself a ++ parser generator using the skeleton or a modified version thereof ++ as a parser skeleton. Alternatively, if you modify or redistribute ++ the parser skeleton itself, you may (at your option) remove this ++ special exception, which will cause the skeleton and the resulting ++ Bison output files to be licensed under the GNU General Public ++ License without this special exception. + +-/* As a special exception, when this file is copied by Bison into a +- Bison output file, you may use that output file without restriction. +- This special exception was added by the Free Software Foundation +- in version 1.24 of Bison. */ ++ This special exception was added by the Free Software Foundation in ++ version 2.2 of Bison. */ + +-/* Written by Richard Stallman by simplifying the original so called +- ``semantic'' parser. */ ++/* C LALR(1) parser skeleton written by Richard Stallman, by ++ simplifying the original so-called "semantic" parser. */ + + /* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local +@@ -36,6 +46,9 @@ + /* Identify Bison output. */ + #define YYBISON 1 + ++/* Bison version. */ ++#define YYBISON_VERSION "2.3" ++ + /* Skeleton name. */ + #define YYSKELETON_NAME "yacc.c" + +@@ -74,6 +87,7 @@ + tUDECIMAL_NUMBER = 276 + }; + #endif ++/* Tokens. */ + #define tAGO 258 + #define tDST 259 + #define tDAY 260 +@@ -102,8 +116,11 @@ + + /* Parse a string into an internal time stamp. + +- Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005 Free Software +- Foundation, Inc. ++ Copyright (C) 1995, 1997, 1998, 2003, 2004, 2005 ++ Free Software Foundation, Inc. ++ ++ Copyright (c) 2005, 2006, 2007, 2010, 2016 ++ mirabilos <m@mirbsd.org> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -139,6 +156,10 @@ + + #include "getdate.h" + ++#ifdef USE_LIBBSD ++size_t strlcat(char *, const char *, size_t); ++#endif ++ + /* There's no need to extend the stack, so there's no need to involve + alloca. */ + #define YYSTACK_USE_ALLOCA 0 +@@ -166,10 +187,44 @@ + #include <stdlib.h> + #include <string.h> + ++#ifndef _STDLIB_H ++#define _STDLIB_H 1 /* GNU bison needs this */ ++#endif ++ ++#ifndef IN_RCS + #include "setenv.h" + #include "xalloc.h" ++#else /* IN_RCS */ ++#include <unistd.h> ++ ++#define HAVE_STRUCT_TM_TM_ZONE 1 ++#define HAVE_TM_GMTOFF 1 ++ ++#define gettime(ts) clock_gettime(CLOCK_REALTIME,(ts)) + +-#if STDC_HEADERS || (! defined isascii && ! HAVE_ISASCII) ++static void * ++xmalloc(size_t s) ++{ ++ static const char xmalloc_enomem[] = "memory exhausted\n"; ++ void *x; ++ ++ if ((x = malloc(s)) == NULL) { ++ write(2, xmalloc_enomem, sizeof(xmalloc_enomem) - 1); ++ exit(1); ++ } ++ ++ return (x); ++} ++ ++static void * ++xmemdup(void const *p, size_t s) ++{ ++ return (memcpy(xmalloc(s), p, s)); ++} ++#endif /* IN_RCS */ ++ ++#if (defined(STDC_HEADERS) && STDC_HEADERS) || \ ++ (!defined(isascii) && !HAVE_ISASCII) + # define IN_CTYPE_DOMAIN(c) 1 + #else + # define IN_CTYPE_DOMAIN(c) isascii (c) +@@ -188,7 +243,8 @@ + of `digit' even when the host does not conform to POSIX. */ + #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) + +-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ ++#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || \ ++ (defined(__STRICT_ANSI__) && __STRICT_ANSI__) + # define __attribute__(x) + #endif + +@@ -196,6 +252,15 @@ + # define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) + #endif + ++#ifndef __IDSTRING ++#define __IDSTRING(varname, string) \ ++ static const char varname[] __attribute__((__used__)) = \ ++ "@(""#)" #varname ": " string ++#endif ++ ++__IDSTRING(rcsid_code, "$MirOS: src/gnu/usr.bin/cvs/lib/getdate.c,v 1.17 2016/10/22 22:46:51 tg Exp $"); ++__IDSTRING(rcsid_bron, "$miros: src/gnu/usr.bin/cvs/lib/getdate.y,v 1.11 2016/10/22 22:45:50 tg Exp $"); ++ + /* Shift A right by B bits portably, by dividing A by 2**B and + truncating towards minus infinity. A and B should be free of side + effects, and B should be in the range 0 <= B <= INT_BITS - 2, where +@@ -292,7 +357,7 @@ + + union YYSTYPE; + static int yylex (union YYSTYPE *, parser_control *); +-static int yyerror (parser_control *, char *); ++static int yyerror (parser_control *, const char *); + static long int time_zone_hhmm (textint, long int); + + +@@ -310,15 +375,22 @@ + # define YYERROR_VERBOSE 0 + #endif + +-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +-#line 209 "getdate.y" +-typedef union YYSTYPE { ++/* Enabling the token table. */ ++#ifndef YYTOKEN_TABLE ++# define YYTOKEN_TABLE 0 ++#endif ++ ++#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED ++typedef union YYSTYPE ++#line 260 "getdate.y" ++{ + long int intval; + textint textintval; + struct timespec timespec; +-} YYSTYPE; +-/* Line 191 of yacc.c. */ +-#line 322 "getdate.c" ++} ++/* Line 193 of yacc.c. */ ++#line 393 "getdate.c" ++ YYSTYPE; + # define yystype YYSTYPE /* obsolescent; will be withdrawn */ + # define YYSTYPE_IS_DECLARED 1 + # define YYSTYPE_IS_TRIVIAL 1 +@@ -329,56 +401,171 @@ + /* Copy the second part of user declarations. */ + + +-/* Line 214 of yacc.c. */ +-#line 334 "getdate.c" ++/* Line 216 of yacc.c. */ ++#line 406 "getdate.c" ++ ++#ifdef short ++# undef short ++#endif ++ ++#ifdef YYTYPE_UINT8 ++typedef YYTYPE_UINT8 yytype_uint8; ++#else ++typedef unsigned char yytype_uint8; ++#endif ++ ++#ifdef YYTYPE_INT8 ++typedef YYTYPE_INT8 yytype_int8; ++#elif (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) ++typedef signed char yytype_int8; ++#else ++typedef short int yytype_int8; ++#endif ++ ++#ifdef YYTYPE_UINT16 ++typedef YYTYPE_UINT16 yytype_uint16; ++#else ++typedef unsigned short int yytype_uint16; ++#endif ++ ++#ifdef YYTYPE_INT16 ++typedef YYTYPE_INT16 yytype_int16; ++#else ++typedef short int yytype_int16; ++#endif ++ ++#ifndef YYSIZE_T ++# ifdef __SIZE_TYPE__ ++# define YYSIZE_T __SIZE_TYPE__ ++# elif defined size_t ++# define YYSIZE_T size_t ++# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) ++# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ ++# define YYSIZE_T size_t ++# else ++# define YYSIZE_T unsigned int ++# endif ++#endif + +-#if ! defined (yyoverflow) || YYERROR_VERBOSE ++#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +-# ifndef YYFREE +-# define YYFREE free ++#ifndef YY_ ++# if defined(YYENABLE_NLS) && YYENABLE_NLS ++# if ENABLE_NLS ++# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ ++# define YY_(msgid) dgettext ("bison-runtime", msgid) ++# endif + # endif +-# ifndef YYMALLOC +-# define YYMALLOC malloc ++# ifndef YY_ ++# define YY_(msgid) msgid + # endif ++#endif ++ ++/* Suppress unused-variable warnings by "using" E. */ ++#if ! defined lint || defined __GNUC__ ++# define YYUSE(e) ((void) (e)) ++#else ++# define YYUSE(e) /* empty */ ++#endif ++ ++/* Identity function, used to suppress warnings about constant conditions. */ ++#ifndef lint ++# define YYID(n) (n) ++#else ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) ++static int ++YYID (int i) ++#else ++static int ++YYID (i) ++ int i; ++#endif ++{ ++ return i; ++} ++#endif ++ ++#if ! defined yyoverflow || YYERROR_VERBOSE + + /* The parser invokes alloca or malloc; define the necessary symbols. */ + + # ifdef YYSTACK_USE_ALLOCA + # if YYSTACK_USE_ALLOCA +-# define YYSTACK_ALLOC alloca +-# endif +-# else +-# if defined (alloca) || defined (_ALLOCA_H) +-# define YYSTACK_ALLOC alloca +-# else + # ifdef __GNUC__ + # define YYSTACK_ALLOC __builtin_alloca ++# elif defined __BUILTIN_VA_ARG_INCR ++# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ ++# elif defined _AIX ++# define YYSTACK_ALLOC __alloca ++# elif defined _MSC_VER ++# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ ++# define alloca _alloca ++# else ++# define YYSTACK_ALLOC alloca ++# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) ++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ ++# ifndef _STDLIB_H ++# define _STDLIB_H 1 ++# endif ++# endif + # endif + # endif + # endif + + # ifdef YYSTACK_ALLOC +- /* Pacify GCC's `empty if-body' warning. */ +-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +-# else +-# if defined (__STDC__) || defined (__cplusplus) +-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +-# define YYSIZE_T size_t ++ /* Pacify GCC's `empty if-body' warning. */ ++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) ++# ifndef YYSTACK_ALLOC_MAXIMUM ++ /* The OS might guarantee only one guard page at the bottom of the stack, ++ and a page size can be as small as 4096 bytes. So we cannot safely ++ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number ++ to allow for a few compiler-allocated temporary stack slots. */ ++# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ + # endif ++# else + # define YYSTACK_ALLOC YYMALLOC + # define YYSTACK_FREE YYFREE ++# ifndef YYSTACK_ALLOC_MAXIMUM ++# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM ++# endif ++# if (defined __cplusplus && ! defined _STDLIB_H \ ++ && ! ((defined YYMALLOC || defined malloc) \ ++ && (defined YYFREE || defined free))) ++# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ ++# ifndef _STDLIB_H ++# define _STDLIB_H 1 ++# endif ++# endif ++# ifndef YYMALLOC ++# define YYMALLOC malloc ++# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) ++void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ ++# endif ++# endif ++# ifndef YYFREE ++# define YYFREE free ++# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) ++void free (void *); /* INFRINGES ON USER NAME SPACE */ ++# endif ++# endif + # endif +-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ ++#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +-#if (! defined (yyoverflow) \ +- && (! defined (__cplusplus) \ +- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) ++#if (! defined yyoverflow \ ++ && (! defined __cplusplus \ ++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + + /* A type that is properly aligned for any stack member. */ + union yyalloc + { +- short yyss; ++ yytype_int16 yyss; + YYSTYPE yyvs; + }; + +@@ -388,24 +575,24 @@ + /* The size of an array large to enough to hold all stacks, each with + N elements. */ + # define YYSTACK_BYTES(N) \ +- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ ++ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + + /* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ + # ifndef YYCOPY +-# if defined (__GNUC__) && 1 < __GNUC__ ++# if defined __GNUC__ && 1 < __GNUC__ + # define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) + # else + # define YYCOPY(To, From, Count) \ + do \ + { \ +- register YYSIZE_T yyi; \ ++ YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ +- while (0) ++ while (YYID (0)) + # endif + # endif + +@@ -423,39 +610,33 @@ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ +- while (0) ++ while (YYID (0)) + + #endif + +-#if defined (__STDC__) || defined (__cplusplus) +- typedef signed char yysigned_char; +-#else +- typedef short yysigned_char; +-#endif +- +-/* YYFINAL -- State number of the termination state. */ ++/* YYFINAL -- State number of the termination state. */ + #define YYFINAL 12 + /* YYLAST -- Last index in YYTABLE. */ + #define YYLAST 88 + +-/* YYNTOKENS -- Number of terminals. */ ++/* YYNTOKENS -- Number of terminals. */ + #define YYNTOKENS 26 +-/* YYNNTS -- Number of nonterminals. */ ++/* YYNNTS -- Number of nonterminals. */ + #define YYNNTS 19 +-/* YYNRULES -- Number of rules. */ ++/* YYNRULES -- Number of rules. */ + #define YYNRULES 78 +-/* YYNRULES -- Number of states. */ ++/* YYNRULES -- Number of states. */ + #define YYNSTATES 96 + + /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ + #define YYUNDEFTOK 2 + #define YYMAXUTOK 276 + +-#define YYTRANSLATE(YYX) \ ++#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + + /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +-static const unsigned char yytranslate[] = ++static const yytype_uint8 yytranslate[] = + { + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, +@@ -490,7 +671,7 @@ + #if YYDEBUG + /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +-static const unsigned char yyprhs[] = ++static const yytype_uint8 yyprhs[] = + { + 0, 0, 3, 5, 7, 10, 11, 14, 16, 18, + 20, 22, 24, 26, 28, 31, 36, 42, 49, 57, +@@ -502,8 +683,8 @@ + 207, 209, 211, 213, 215, 217, 218, 221, 222 + }; + +-/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +-static const yysigned_char yyrhs[] = ++/* YYRHS -- A `-1'-separated list of the rules' RHS. */ ++static const yytype_int8 yyrhs[] = + { + 27, 0, -1, 28, -1, 29, -1, 22, 39, -1, + -1, 29, 30, -1, 31, -1, 32, -1, 33, -1, +@@ -531,22 +712,22 @@ + }; + + /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +-static const unsigned short yyrline[] = ++static const yytype_uint16 yyrline[] = + { +- 0, 230, 230, 231, 235, 242, 244, 248, 250, 252, +- 254, 256, 258, 260, 264, 272, 280, 290, 297, 309, +- 314, 322, 324, 326, 328, 330, 335, 340, 345, 350, +- 358, 363, 383, 390, 398, 406, 411, 417, 422, 431, +- 441, 445, 447, 449, 451, 453, 455, 457, 459, 461, +- 463, 465, 467, 469, 471, 473, 475, 477, 479, 481, +- 483, 485, 489, 491, 493, 495, 497, 499, 503, 503, +- 506, 507, 512, 513, 518, 556, 557, 563, 564 ++ 0, 281, 281, 282, 286, 293, 295, 299, 301, 303, ++ 305, 307, 309, 311, 315, 323, 331, 341, 348, 360, ++ 365, 373, 375, 377, 379, 381, 386, 391, 396, 401, ++ 409, 414, 434, 441, 449, 457, 462, 468, 473, 482, ++ 492, 496, 498, 500, 502, 504, 506, 508, 510, 512, ++ 514, 516, 518, 520, 522, 524, 526, 528, 530, 532, ++ 534, 536, 540, 542, 544, 546, 548, 550, 554, 554, ++ 557, 558, 563, 564, 569, 607, 608, 614, 615 + }; + #endif + +-#if YYDEBUG || YYERROR_VERBOSE +-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. +- First, the terminals, then, starting at YYNTOKENS, nonterminals. */ ++#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE ++/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. ++ First, the terminals, then, starting at YYNTOKENS, nonterminals. */ + static const char *const yytname[] = + { + "$end", "error", "$undefined", "tAGO", "tDST", "tDAY", "tDAY_UNIT", +@@ -563,7 +744,7 @@ + # ifdef YYPRINT + /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +-static const unsigned short yytoknum[] = ++static const yytype_uint16 yytoknum[] = + { + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, +@@ -572,7 +753,7 @@ + # endif + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +-static const unsigned char yyr1[] = ++static const yytype_uint8 yyr1[] = + { + 0, 26, 27, 27, 28, 29, 29, 30, 30, 30, + 30, 30, 30, 30, 31, 31, 31, 31, 31, 32, +@@ -585,7 +766,7 @@ + }; + + /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +-static const unsigned char yyr2[] = ++static const yytype_uint8 yyr2[] = + { + 0, 2, 1, 1, 2, 0, 2, 1, 1, 1, + 1, 1, 1, 1, 2, 4, 5, 6, 7, 1, +@@ -600,7 +781,7 @@ + /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +-static const unsigned char yydefact[] = ++static const yytype_uint8 yydefact[] = + { + 5, 0, 0, 2, 3, 71, 73, 70, 72, 4, + 68, 69, 1, 26, 49, 24, 52, 19, 55, 0, +@@ -614,8 +795,8 @@ + 16, 77, 31, 75, 17, 18 + }; + +-/* YYDEFGOTO[NTERM-NUM]. */ +-static const yysigned_char yydefgoto[] = ++/* YYDEFGOTO[NTERM-NUM]. */ ++static const yytype_int8 yydefgoto[] = + { + -1, 2, 3, 4, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 9, 10, 11, 38, 77, 88 +@@ -624,7 +805,7 @@ + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ + #define YYPACT_NINF -43 +-static const yysigned_char yypact[] = ++static const yytype_int8 yypact[] = + { + -18, 48, 9, -43, 19, -43, -43, -43, -43, -43, + -43, -43, -43, 32, -43, -43, -43, 54, -43, 28, +@@ -639,7 +820,7 @@ + }; + + /* YYPGOTO[NTERM-NUM]. */ +-static const yysigned_char yypgoto[] = ++static const yytype_int8 yypgoto[] = + { + -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, + -43, -43, 55, -43, -43, -11, -43, -42, -7 +@@ -650,7 +831,7 @@ + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ + #define YYTABLE_NINF -1 +-static const unsigned char yytable[] = ++static const yytype_uint8 yytable[] = + { + 59, 60, 50, 61, 1, 62, 63, 64, 65, 12, + 66, 67, 53, 68, 54, 85, 51, 55, 69, 56, +@@ -663,7 +844,7 @@ + 81, 82, 83, 84, 94, 92, 0, 0, 76 + }; + +-static const yysigned_char yycheck[] = ++static const yytype_int8 yycheck[] = + { + 5, 6, 4, 8, 22, 10, 11, 12, 13, 0, + 15, 16, 6, 18, 8, 10, 18, 11, 23, 13, +@@ -678,7 +859,7 @@ + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +-static const unsigned char yystos[] = ++static const yytype_uint8 yystos[] = + { + 0, 22, 27, 28, 29, 18, 19, 20, 21, 39, + 40, 41, 0, 5, 6, 7, 8, 9, 11, 12, +@@ -692,22 +873,6 @@ + 43, 41, 19, 18, 44, 43 + }; + +-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) +-# define YYSIZE_T __SIZE_TYPE__ +-#endif +-#if ! defined (YYSIZE_T) && defined (size_t) +-# define YYSIZE_T size_t +-#endif +-#if ! defined (YYSIZE_T) +-# if defined (__STDC__) || defined (__cplusplus) +-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +-# define YYSIZE_T size_t +-# endif +-#endif +-#if ! defined (YYSIZE_T) +-# define YYSIZE_T unsigned int +-#endif +- + #define yyerrok (yyerrstatus = 0) + #define yyclearin (yychar = YYEMPTY) + #define YYEMPTY (-2) +@@ -733,30 +898,63 @@ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ +- YYPOPSTACK; \ ++ YYPOPSTACK (1); \ + goto yybackup; \ + } \ + else \ +- { \ +- yyerror (pc, "syntax error: cannot back up");\ ++ { \ ++ yyerror (pc, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +-while (0) ++while (YYID (0)) ++ + + #define YYTERROR 1 + #define YYERRCODE 256 + +-/* YYLLOC_DEFAULT -- Compute the default location (before the actions +- are run). */ + ++/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. ++ If N is 0, then set CURRENT to the empty location which ends ++ the previous symbol: RHS[0] (always defined). */ ++ ++#define YYRHSLOC(Rhs, K) ((Rhs)[K]) + #ifndef YYLLOC_DEFAULT +-# define YYLLOC_DEFAULT(Current, Rhs, N) \ +- ((Current).first_line = (Rhs)[1].first_line, \ +- (Current).first_column = (Rhs)[1].first_column, \ +- (Current).last_line = (Rhs)[N].last_line, \ +- (Current).last_column = (Rhs)[N].last_column) ++# define YYLLOC_DEFAULT(Current, Rhs, N) \ ++ do \ ++ if (YYID (N)) \ ++ { \ ++ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ ++ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ ++ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ ++ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ ++ } \ ++ else \ ++ { \ ++ (Current).first_line = (Current).last_line = \ ++ YYRHSLOC (Rhs, 0).last_line; \ ++ (Current).first_column = (Current).last_column = \ ++ YYRHSLOC (Rhs, 0).last_column; \ ++ } \ ++ while (YYID (0)) ++#endif ++ ++ ++/* YY_LOCATION_PRINT -- Print the location on the stream. ++ This macro was not mandated originally: define only if we know ++ we won't break user code: when these are the locations we know. */ ++ ++#ifndef YY_LOCATION_PRINT ++# if defined(YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL ++# define YY_LOCATION_PRINT(File, Loc) \ ++ fprintf (File, "%d.%d-%d.%d", \ ++ (Loc).first_line, (Loc).first_column, \ ++ (Loc).last_line, (Loc).last_column) ++# else ++# define YY_LOCATION_PRINT(File, Loc) ((void) 0) ++# endif + #endif + ++ + /* YYLEX -- calling `yylex' with the right arguments. */ + + #ifdef YYLEX_PARAM +@@ -777,42 +975,99 @@ + do { \ + if (yydebug) \ + YYFPRINTF Args; \ +-} while (0) ++} while (YYID (0)) + +-# define YYDSYMPRINT(Args) \ +-do { \ +- if (yydebug) \ +- yysymprint Args; \ +-} while (0) ++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ ++do { \ ++ if (yydebug) \ ++ { \ ++ YYFPRINTF (stderr, "%s ", Title); \ ++ yy_symbol_print (stderr, \ ++ Type, Value, pc); \ ++ YYFPRINTF (stderr, "\n"); \ ++ } \ ++} while (YYID (0)) + +-# define YYDSYMPRINTF(Title, Token, Value, Location) \ +-do { \ +- if (yydebug) \ +- { \ +- YYFPRINTF (stderr, "%s ", Title); \ +- yysymprint (stderr, \ +- Token, Value); \ +- YYFPRINTF (stderr, "\n"); \ +- } \ +-} while (0) ++ ++/*--------------------------------. ++| Print this symbol on YYOUTPUT. | ++`--------------------------------*/ ++ ++/*ARGSUSED*/ ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) ++static void ++yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_control *pc) ++#else ++static void ++yy_symbol_value_print (yyoutput, yytype, yyvaluep, pc) ++ FILE *yyoutput; ++ int yytype; ++ YYSTYPE const * const yyvaluep; ++ parser_control *pc; ++#endif ++{ ++ if (!yyvaluep) ++ return; ++ YYUSE (pc); ++# ifdef YYPRINT ++ if (yytype < YYNTOKENS) ++ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); ++# else ++ YYUSE (yyoutput); ++# endif ++ switch (yytype) ++ { ++ default: ++ break; ++ } ++} ++ ++ ++/*--------------------------------. ++| Print this symbol on YYOUTPUT. | ++`--------------------------------*/ ++ ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) ++static void ++yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_control *pc) ++#else ++static void ++yy_symbol_print (yyoutput, yytype, yyvaluep, pc) ++ FILE *yyoutput; ++ int yytype; ++ YYSTYPE const * const yyvaluep; ++ parser_control *pc; ++#endif ++{ ++ if (yytype < YYNTOKENS) ++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); ++ else ++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); ++ ++ yy_symbol_value_print (yyoutput, yytype, yyvaluep, pc); ++ YYFPRINTF (yyoutput, ")"); ++} + + /*------------------------------------------------------------------. + | yy_stack_print -- Print the state stack from its BOTTOM up to its | + | TOP (included). | + `------------------------------------------------------------------*/ + +-#if defined (__STDC__) || defined (__cplusplus) ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + static void +-yy_stack_print (short *bottom, short *top) ++yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) + #else + static void + yy_stack_print (bottom, top) +- short *bottom; +- short *top; ++ yytype_int16 *bottom; ++ yytype_int16 *top; + #endif + { + YYFPRINTF (stderr, "Stack now"); +- for (/* Nothing. */; bottom <= top; ++bottom) ++ for (; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); + } +@@ -821,45 +1076,53 @@ + do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +-} while (0) ++} while (YYID (0)) + + + /*------------------------------------------------. + | Report that the YYRULE is going to be reduced. | + `------------------------------------------------*/ + +-#if defined (__STDC__) || defined (__cplusplus) ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + static void +-yy_reduce_print (int yyrule) ++yy_reduce_print (YYSTYPE *yyvsp, int yyrule, parser_control *pc) + #else + static void +-yy_reduce_print (yyrule) ++yy_reduce_print (yyvsp, yyrule, pc) ++ YYSTYPE *yyvsp; + int yyrule; ++ parser_control *pc; + #endif + { ++ int yynrhs = yyr2[yyrule]; + int yyi; +- unsigned int yylno = yyrline[yyrule]; +- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", +- yyrule - 1, yylno); +- /* Print the symbols being reduced, and their result. */ +- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) +- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); +- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); ++ unsigned long int yylno = yyrline[yyrule]; ++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", ++ yyrule - 1, yylno); ++ /* The symbols being reduced. */ ++ for (yyi = 0; yyi < yynrhs; yyi++) ++ { ++ fprintf (stderr, " $%d = ", yyi + 1); ++ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], ++ &(yyvsp[(yyi + 1) - (yynrhs)]) ++ , pc); ++ fprintf (stderr, "\n"); ++ } + } + + # define YY_REDUCE_PRINT(Rule) \ + do { \ + if (yydebug) \ +- yy_reduce_print (Rule); \ +-} while (0) ++ yy_reduce_print (yyvsp, Rule, pc); \ ++} while (YYID (0)) + + /* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ + int yydebug; + #else /* !YYDEBUG */ + # define YYDPRINTF(Args) +-# define YYDSYMPRINT(Args) +-# define YYDSYMPRINTF(Title, Token, Value, Location) ++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) + # define YY_STACK_PRINT(Bottom, Top) + # define YY_REDUCE_PRINT(Rule) + #endif /* !YYDEBUG */ +@@ -874,13 +1137,9 @@ + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if +- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) ++ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0 +-# undef YYMAXDEPTH +-#endif +- + #ifndef YYMAXDEPTH + # define YYMAXDEPTH 10000 + #endif +@@ -890,45 +1149,47 @@ + #if YYERROR_VERBOSE + + # ifndef yystrlen +-# if defined (__GLIBC__) && defined (_STRING_H) ++# if defined __GLIBC__ && defined _STRING_H + # define yystrlen strlen + # else + /* Return the length of YYSTR. */ ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + static YYSIZE_T +-# if defined (__STDC__) || defined (__cplusplus) + yystrlen (const char *yystr) +-# else ++#else ++static YYSIZE_T + yystrlen (yystr) +- const char *yystr; +-# endif ++ const char *yystr; ++#endif + { +- register const char *yys = yystr; +- +- while (*yys++ != '\0') ++ YYSIZE_T yylen; ++ for (yylen = 0; yystr[yylen]; yylen++) + continue; +- +- return yys - yystr - 1; ++ return yylen; + } + # endif + # endif + + # ifndef yystpcpy +-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) ++# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE + # define yystpcpy stpcpy + # else + /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + static char * +-# if defined (__STDC__) || defined (__cplusplus) + yystpcpy (char *yydest, const char *yysrc) +-# else ++#else ++static char * + yystpcpy (yydest, yysrc) +- char *yydest; +- const char *yysrc; +-# endif ++ char *yydest; ++ const char *yysrc; ++#endif + { +- register char *yyd = yydest; +- register const char *yys = yysrc; ++ char *yyd = yydest; ++ const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; +@@ -938,70 +1199,194 @@ + # endif + # endif + +-#endif /* !YYERROR_VERBOSE */ ++# ifndef yytnamerr ++/* Copy to YYRES the contents of YYSTR after stripping away unnecessary ++ quotes and backslashes, so that it's suitable for yyerror. The ++ heuristic is that double-quoting is unnecessary unless the string ++ contains an apostrophe, a comma, or backslash (other than ++ backslash-backslash). YYSTR is taken from yytname. If YYRES is ++ null, do not copy; instead, return the length of what the result ++ would have been. */ ++static YYSIZE_T ++yytnamerr (char *yyres, const char *yystr) ++{ ++ if (*yystr == '"') ++ { ++ YYSIZE_T yyn = 0; ++ char const *yyp = yystr; ++ ++ for (;;) ++ switch (*++yyp) ++ { ++ case '\'': ++ case ',': ++ goto do_not_strip_quotes; ++ ++ case '\\': ++ if (*++yyp != '\\') ++ goto do_not_strip_quotes; ++ /* Fall through. */ ++ default: ++ if (yyres) ++ yyres[yyn] = *yyp; ++ yyn++; ++ break; + +- ++ case '"': ++ if (yyres) ++ yyres[yyn] = '\0'; ++ return yyn; ++ } ++ do_not_strip_quotes: ; ++ } + +-#if YYDEBUG +-/*--------------------------------. +-| Print this symbol on YYOUTPUT. | +-`--------------------------------*/ ++ if (! yyres) ++ return yystrlen (yystr); + +-#if defined (__STDC__) || defined (__cplusplus) +-static void +-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) +-#else +-static void +-yysymprint (yyoutput, yytype, yyvaluep) +- FILE *yyoutput; +- int yytype; +- YYSTYPE *yyvaluep; +-#endif ++ return yystpcpy (yyres, yystr) - yyres; ++} ++# endif ++ ++/* Copy into YYRESULT an error message about the unexpected token ++ YYCHAR while in state YYSTATE. Return the number of bytes copied, ++ including the terminating null byte. If YYRESULT is null, do not ++ copy anything; just return the number of bytes that would be ++ copied. As a special case, return 0 if an ordinary "syntax error" ++ message will do. Return YYSIZE_MAXIMUM if overflow occurs during ++ size calculation. */ ++static YYSIZE_T ++yysyntax_error (char *yyresult, int yystate, int yychar) + { +- /* Pacify ``unused variable'' warnings. */ +- (void) yyvaluep; ++ int yyn = yypact[yystate]; + +- if (yytype < YYNTOKENS) ++ if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) ++ return 0; ++ else + { +- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); +-# ifdef YYPRINT +- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); ++ int yytype = YYTRANSLATE (yychar); ++ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); ++ YYSIZE_T yysize = yysize0; ++ YYSIZE_T yysize1; ++ int yysize_overflow = 0; ++ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; ++ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; ++ int yyx; ++ ++# if 0 ++ /* This is so xgettext sees the translatable formats that are ++ constructed on the fly. */ ++ YY_("syntax error, unexpected %s"); ++ YY_("syntax error, unexpected %s, expecting %s"); ++ YY_("syntax error, unexpected %s, expecting %s or %s"); ++ YY_("syntax error, unexpected %s, expecting %s or %s or %s"); ++ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); + # endif +- } +- else +- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); ++ char *yyfmt; ++ char const *yyf; ++ static char const yyunexpected[] = "syntax error, unexpected %s"; ++ static char const yyexpecting[] = ", expecting %s"; ++ static char const yyor[] = " or %s"; ++ char yyformat[sizeof yyunexpected ++ + sizeof yyexpecting - 1 ++ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) ++ * (sizeof yyor - 1))]; ++ char const *yyprefix = yyexpecting; ++ ++ /* Start YYX at -YYN if negative to avoid negative indexes in ++ YYCHECK. */ ++ int yyxbegin = yyn < 0 ? -yyn : 0; ++ ++ /* Stay within bounds of both yycheck and yytname. */ ++ int yychecklim = YYLAST - yyn + 1; ++ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; ++ int yycount = 1; + +- switch (yytype) +- { +- default: +- break; ++ yyarg[0] = yytname[yytype]; ++ yyfmt = yystpcpy (yyformat, yyunexpected); ++ ++ for (yyx = yyxbegin; yyx < yyxend; ++yyx) ++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) ++ { ++ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) ++ { ++ yycount = 1; ++ yysize = yysize0; ++ yyformat[sizeof yyunexpected - 1] = '\0'; ++ break; ++ } ++ yyarg[yycount++] = yytname[yyx]; ++ yysize1 = yysize + yytnamerr (0, yytname[yyx]); ++ yysize_overflow |= (yysize1 < yysize); ++ yysize = yysize1; ++ yyfmt = yystpcpy (yyfmt, yyprefix); ++ yyprefix = yyor; ++ } ++ ++ yyf = YY_(yyformat); ++ yysize1 = yysize + yystrlen (yyf); ++ yysize_overflow |= (yysize1 < yysize); ++ yysize = yysize1; ++ ++ if (yysize_overflow) ++ return YYSIZE_MAXIMUM; ++ ++ if (yyresult) ++ { ++ /* Avoid sprintf, as that infringes on the user's name space. ++ Don't have undefined behavior even if the translation ++ produced a string with the wrong number of "%s"s. */ ++ char *yyp = yyresult; ++ int yyi = 0; ++ while ((*yyp = *yyf) != '\0') ++ { ++ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) ++ { ++ yyp += yytnamerr (yyp, yyarg[yyi++]); ++ yyf += 2; ++ } ++ else ++ { ++ yyp++; ++ yyf++; ++ } ++ } ++ } ++ return yysize; + } +- YYFPRINTF (yyoutput, ")"); + } ++#endif /* YYERROR_VERBOSE */ ++ + +-#endif /* ! YYDEBUG */ + /*-----------------------------------------------. + | Release the memory associated to this symbol. | + `-----------------------------------------------*/ + +-#if defined (__STDC__) || defined (__cplusplus) ++/*ARGSUSED*/ ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + static void +-yydestruct (int yytype, YYSTYPE *yyvaluep) ++yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, parser_control *pc) + #else + static void +-yydestruct (yytype, yyvaluep) ++yydestruct (yymsg, yytype, yyvaluep, pc) ++ const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; ++ parser_control *pc; + #endif + { +- /* Pacify ``unused variable'' warnings. */ +- (void) yyvaluep; ++ YYUSE (yyvaluep); ++ YYUSE (pc); ++ ++ if (!yymsg) ++ yymsg = "Deleting"; ++ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: +- break; ++ break; + } + } + +@@ -1009,14 +1394,14 @@ + /* Prevent warnings from -Wmissing-prototypes. */ + + #ifdef YYPARSE_PARAM +-# if defined (__STDC__) || defined (__cplusplus) ++#if defined __STDC__ || defined __cplusplus + int yyparse (void *YYPARSE_PARAM); +-# else ++#else + int yyparse (); +-# endif ++#endif + #else /* ! YYPARSE_PARAM */ +-#if defined (__STDC__) || defined (__cplusplus) +-int yyparse ( parser_control *pc ); ++#if defined __STDC__ || defined __cplusplus ++int yyparse (parser_control *pc); + #else + int yyparse (); + #endif +@@ -1032,39 +1417,49 @@ + `----------*/ + + #ifdef YYPARSE_PARAM +-# if defined (__STDC__) || defined (__cplusplus) +-int yyparse (void *YYPARSE_PARAM) +-# else +-int yyparse (YYPARSE_PARAM) +- void *YYPARSE_PARAM; +-# endif ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) ++int ++yyparse (void *YYPARSE_PARAM) ++#else ++int ++yyparse (YYPARSE_PARAM) ++ void *YYPARSE_PARAM; ++#endif + #else /* ! YYPARSE_PARAM */ +-#if defined (__STDC__) || defined (__cplusplus) ++#if (defined __STDC__ || defined __C99__FUNC__ \ ++ || defined __cplusplus || defined _MSC_VER) + int +-yyparse ( parser_control *pc ) ++yyparse (parser_control *pc) + #else + int + yyparse (pc) +- parser_control *pc ; ++ parser_control *pc; + #endif + #endif + { +- /* The lookahead symbol. */ ++ /* The look-ahead symbol. */ + int yychar; + +-/* The semantic value of the lookahead symbol. */ ++/* The semantic value of the look-ahead symbol. */ + YYSTYPE yylval; + + /* Number of syntax errors so far. */ + int yynerrs; + +- register int yystate; +- register int yyn; ++ int yystate; ++ int yyn; + int yyresult; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; +- /* Lookahead token as an internal (translated) token number. */ ++ /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; ++#if YYERROR_VERBOSE ++ /* Buffer for error messages, and its allocated size. */ ++ char yymsgbuf[128]; ++ char *yymsg = yymsgbuf; ++ YYSIZE_T yymsg_alloc = sizeof yymsgbuf; ++#endif + + /* Three stacks and their tools: + `yyss': related to states, +@@ -1075,18 +1470,18 @@ + to reallocate them elsewhere. */ + + /* The state stack. */ +- short yyssa[YYINITDEPTH]; +- short *yyss = yyssa; +- register short *yyssp; ++ yytype_int16 yyssa[YYINITDEPTH]; ++ yytype_int16 *yyss = yyssa; ++ yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; +- register YYSTYPE *yyvsp; ++ YYSTYPE *yyvsp; + + + +-#define YYPOPSTACK (yyvsp--, yyssp--) ++#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + YYSIZE_T yystacksize = YYINITDEPTH; + +@@ -1095,9 +1490,9 @@ + YYSTYPE yyval; + + +- /* When reducing, the number of symbols on the RHS of the reduced +- rule. */ +- int yylen; ++ /* The number of symbols on the RHS of the reduced rule. ++ Keep to zero when no symbol should be popped. */ ++ int yylen = 0; + + YYDPRINTF ((stderr, "Starting parse\n")); + +@@ -1121,8 +1516,7 @@ + `------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks +- have just been pushed. so pushing a state here evens the stacks. +- */ ++ have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: +@@ -1135,18 +1529,18 @@ + + #ifdef yyoverflow + { +- /* Give user a chance to reallocate the stack. Use copies of ++ /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; +- short *yyss1 = yyss; ++ yytype_int16 *yyss1 = yyss; + + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ +- yyoverflow ("parser stack overflow", ++ yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + +@@ -1157,21 +1551,21 @@ + } + #else /* no yyoverflow */ + # ifndef YYSTACK_RELOCATE +- goto yyoverflowlab; ++ goto yyexhaustedlab; + # else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) +- goto yyoverflowlab; ++ goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { +- short *yyss1 = yyss; ++ yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) +- goto yyoverflowlab; ++ goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + +@@ -1202,19 +1596,17 @@ + `-----------*/ + yybackup: + +-/* Do appropriate processing given the current state. */ +-/* Read a lookahead token if we need one and don't already have one. */ +-/* yyresume: */ +- +- /* First try to decide what to do without reference to lookahead token. */ ++ /* Do appropriate processing given the current state. Read a ++ look-ahead token if we need one and don't already have one. */ + ++ /* First try to decide what to do without reference to look-ahead token. */ + yyn = yypact[yystate]; + if (yyn == YYPACT_NINF) + goto yydefault; + +- /* Not known => get a lookahead token if don't already have one. */ ++ /* Not known => get a look-ahead token if don't already have one. */ + +- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ ++ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); +@@ -1229,7 +1621,7 @@ + else + { + yytoken = YYTRANSLATE (yychar); +- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); ++ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to +@@ -1249,22 +1641,21 @@ + if (yyn == YYFINAL) + YYACCEPT; + +- /* Shift the lookahead token. */ +- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); +- +- /* Discard the token being shifted unless it is eof. */ +- if (yychar != YYEOF) +- yychar = YYEMPTY; +- +- *++yyvsp = yylval; +- +- + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + ++ /* Shift the look-ahead token. */ ++ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); ++ ++ /* Discard the shifted token unless it is eof. */ ++ if (yychar != YYEOF) ++ yychar = YYEMPTY; ++ + yystate = yyn; ++ *++yyvsp = yylval; ++ + goto yynewstate; + + +@@ -1300,272 +1691,272 @@ + switch (yyn) + { + case 4: +-#line 236 "getdate.y" ++#line 287 "getdate.y" + { +- pc->seconds = yyvsp[0].timespec; ++ pc->seconds = (yyvsp[(2) - (2)].timespec); + pc->timespec_seen = true; +- } ++ ;} + break; + + case 7: +-#line 249 "getdate.y" +- { pc->times_seen++; } ++#line 300 "getdate.y" ++ { pc->times_seen++; ;} + break; + + case 8: +-#line 251 "getdate.y" +- { pc->local_zones_seen++; } ++#line 302 "getdate.y" ++ { pc->local_zones_seen++; ;} + break; + + case 9: +-#line 253 "getdate.y" +- { pc->zones_seen++; } ++#line 304 "getdate.y" ++ { pc->zones_seen++; ;} + break; + + case 10: +-#line 255 "getdate.y" +- { pc->dates_seen++; } ++#line 306 "getdate.y" ++ { pc->dates_seen++; ;} + break; + + case 11: +-#line 257 "getdate.y" +- { pc->days_seen++; } ++#line 308 "getdate.y" ++ { pc->days_seen++; ;} + break; + + case 12: +-#line 259 "getdate.y" +- { pc->rels_seen = true; } ++#line 310 "getdate.y" ++ { pc->rels_seen = true; ;} + break; + + case 14: +-#line 265 "getdate.y" ++#line 316 "getdate.y" + { +- pc->hour = yyvsp[-1].textintval.value; ++ pc->hour = (yyvsp[(1) - (2)].textintval).value; + pc->minutes = 0; + pc->seconds.tv_sec = 0; + pc->seconds.tv_nsec = 0; +- pc->meridian = yyvsp[0].intval; +- } ++ pc->meridian = (yyvsp[(2) - (2)].intval); ++ ;} + break; + + case 15: +-#line 273 "getdate.y" ++#line 324 "getdate.y" + { +- pc->hour = yyvsp[-3].textintval.value; +- pc->minutes = yyvsp[-1].textintval.value; ++ pc->hour = (yyvsp[(1) - (4)].textintval).value; ++ pc->minutes = (yyvsp[(3) - (4)].textintval).value; + pc->seconds.tv_sec = 0; + pc->seconds.tv_nsec = 0; +- pc->meridian = yyvsp[0].intval; +- } ++ pc->meridian = (yyvsp[(4) - (4)].intval); ++ ;} + break; + + case 16: +-#line 281 "getdate.y" ++#line 332 "getdate.y" + { +- pc->hour = yyvsp[-4].textintval.value; +- pc->minutes = yyvsp[-2].textintval.value; ++ pc->hour = (yyvsp[(1) - (5)].textintval).value; ++ pc->minutes = (yyvsp[(3) - (5)].textintval).value; + pc->seconds.tv_sec = 0; + pc->seconds.tv_nsec = 0; + pc->meridian = MER24; + pc->zones_seen++; +- pc->time_zone = time_zone_hhmm (yyvsp[-1].textintval, yyvsp[0].intval); +- } ++ pc->time_zone = time_zone_hhmm ((yyvsp[(4) - (5)].textintval), (yyvsp[(5) - (5)].intval)); ++ ;} + break; + + case 17: +-#line 291 "getdate.y" ++#line 342 "getdate.y" + { +- pc->hour = yyvsp[-5].textintval.value; +- pc->minutes = yyvsp[-3].textintval.value; +- pc->seconds = yyvsp[-1].timespec; +- pc->meridian = yyvsp[0].intval; +- } ++ pc->hour = (yyvsp[(1) - (6)].textintval).value; ++ pc->minutes = (yyvsp[(3) - (6)].textintval).value; ++ pc->seconds = (yyvsp[(5) - (6)].timespec); ++ pc->meridian = (yyvsp[(6) - (6)].intval); ++ ;} + break; + + case 18: +-#line 298 "getdate.y" ++#line 349 "getdate.y" + { +- pc->hour = yyvsp[-6].textintval.value; +- pc->minutes = yyvsp[-4].textintval.value; +- pc->seconds = yyvsp[-2].timespec; ++ pc->hour = (yyvsp[(1) - (7)].textintval).value; ++ pc->minutes = (yyvsp[(3) - (7)].textintval).value; ++ pc->seconds = (yyvsp[(5) - (7)].timespec); + pc->meridian = MER24; + pc->zones_seen++; +- pc->time_zone = time_zone_hhmm (yyvsp[-1].textintval, yyvsp[0].intval); +- } ++ pc->time_zone = time_zone_hhmm ((yyvsp[(6) - (7)].textintval), (yyvsp[(7) - (7)].intval)); ++ ;} + break; + + case 19: +-#line 310 "getdate.y" ++#line 361 "getdate.y" + { +- pc->local_isdst = yyvsp[0].intval; +- pc->dsts_seen += (0 < yyvsp[0].intval); +- } ++ pc->local_isdst = (yyvsp[(1) - (1)].intval); ++ pc->dsts_seen += (0 < (yyvsp[(1) - (1)].intval)); ++ ;} + break; + + case 20: +-#line 315 "getdate.y" ++#line 366 "getdate.y" + { + pc->local_isdst = 1; +- pc->dsts_seen += (0 < yyvsp[-1].intval) + 1; +- } ++ pc->dsts_seen += (0 < (yyvsp[(1) - (2)].intval)) + 1; ++ ;} + break; + + case 21: +-#line 323 "getdate.y" +- { pc->time_zone = yyvsp[0].intval; } ++#line 374 "getdate.y" ++ { pc->time_zone = (yyvsp[(1) - (1)].intval); ;} + break; + + case 22: +-#line 325 "getdate.y" +- { pc->time_zone = yyvsp[-1].intval; pc->rels_seen = true; } ++#line 376 "getdate.y" ++ { pc->time_zone = (yyvsp[(1) - (2)].intval); pc->rels_seen = true; ;} + break; + + case 23: +-#line 327 "getdate.y" +- { pc->time_zone = yyvsp[-2].intval + time_zone_hhmm (yyvsp[-1].textintval, yyvsp[0].intval); } ++#line 378 "getdate.y" ++ { pc->time_zone = (yyvsp[(1) - (3)].intval) + time_zone_hhmm ((yyvsp[(2) - (3)].textintval), (yyvsp[(3) - (3)].intval)); ;} + break; + + case 24: +-#line 329 "getdate.y" +- { pc->time_zone = yyvsp[0].intval + 60; } ++#line 380 "getdate.y" ++ { pc->time_zone = (yyvsp[(1) - (1)].intval) + 60; ;} + break; + + case 25: +-#line 331 "getdate.y" +- { pc->time_zone = yyvsp[-1].intval + 60; } ++#line 382 "getdate.y" ++ { pc->time_zone = (yyvsp[(1) - (2)].intval) + 60; ;} + break; + + case 26: +-#line 336 "getdate.y" ++#line 387 "getdate.y" + { + pc->day_ordinal = 1; +- pc->day_number = yyvsp[0].intval; +- } ++ pc->day_number = (yyvsp[(1) - (1)].intval); ++ ;} + break; + + case 27: +-#line 341 "getdate.y" ++#line 392 "getdate.y" + { + pc->day_ordinal = 1; +- pc->day_number = yyvsp[-1].intval; +- } ++ pc->day_number = (yyvsp[(1) - (2)].intval); ++ ;} + break; + + case 28: +-#line 346 "getdate.y" ++#line 397 "getdate.y" + { +- pc->day_ordinal = yyvsp[-1].intval; +- pc->day_number = yyvsp[0].intval; +- } ++ pc->day_ordinal = (yyvsp[(1) - (2)].intval); ++ pc->day_number = (yyvsp[(2) - (2)].intval); ++ ;} + break; + + case 29: +-#line 351 "getdate.y" ++#line 402 "getdate.y" + { +- pc->day_ordinal = yyvsp[-1].textintval.value; +- pc->day_number = yyvsp[0].intval; +- } ++ pc->day_ordinal = (yyvsp[(1) - (2)].textintval).value; ++ pc->day_number = (yyvsp[(2) - (2)].intval); ++ ;} + break; + + case 30: +-#line 359 "getdate.y" ++#line 410 "getdate.y" + { +- pc->month = yyvsp[-2].textintval.value; +- pc->day = yyvsp[0].textintval.value; +- } ++ pc->month = (yyvsp[(1) - (3)].textintval).value; ++ pc->day = (yyvsp[(3) - (3)].textintval).value; ++ ;} + break; + + case 31: +-#line 364 "getdate.y" ++#line 415 "getdate.y" + { + /* Interpret as YYYY/MM/DD if the first value has 4 or more digits, + otherwise as MM/DD/YY. + The goal in recognizing YYYY/MM/DD is solely to support legacy + machine-generated dates like those in an RCS log listing. If + you want portability, use the ISO 8601 format. */ +- if (4 <= yyvsp[-4].textintval.digits) ++ if (4 <= (yyvsp[(1) - (5)].textintval).digits) + { +- pc->year = yyvsp[-4].textintval; +- pc->month = yyvsp[-2].textintval.value; +- pc->day = yyvsp[0].textintval.value; ++ pc->year = (yyvsp[(1) - (5)].textintval); ++ pc->month = (yyvsp[(3) - (5)].textintval).value; ++ pc->day = (yyvsp[(5) - (5)].textintval).value; + } + else + { +- pc->month = yyvsp[-4].textintval.value; +- pc->day = yyvsp[-2].textintval.value; +- pc->year = yyvsp[0].textintval; ++ pc->month = (yyvsp[(1) - (5)].textintval).value; ++ pc->day = (yyvsp[(3) - (5)].textintval).value; ++ pc->year = (yyvsp[(5) - (5)].textintval); + } +- } ++ ;} + break; + + case 32: +-#line 384 "getdate.y" ++#line 435 "getdate.y" + { + /* ISO 8601 format. YYYY-MM-DD. */ +- pc->year = yyvsp[-2].textintval; +- pc->month = -yyvsp[-1].textintval.value; +- pc->day = -yyvsp[0].textintval.value; +- } ++ pc->year = (yyvsp[(1) - (3)].textintval); ++ pc->month = -(yyvsp[(2) - (3)].textintval).value; ++ pc->day = -(yyvsp[(3) - (3)].textintval).value; ++ ;} + break; + + case 33: +-#line 391 "getdate.y" ++#line 442 "getdate.y" + { + /* e.g. 17-JUN-1992. */ +- pc->day = yyvsp[-2].textintval.value; +- pc->month = yyvsp[-1].intval; +- pc->year.value = -yyvsp[0].textintval.value; +- pc->year.digits = yyvsp[0].textintval.digits; +- } ++ pc->day = (yyvsp[(1) - (3)].textintval).value; ++ pc->month = (yyvsp[(2) - (3)].intval); ++ pc->year.value = -(yyvsp[(3) - (3)].textintval).value; ++ pc->year.digits = (yyvsp[(3) - (3)].textintval).digits; ++ ;} + break; + + case 34: +-#line 399 "getdate.y" ++#line 450 "getdate.y" + { + /* e.g. JUN-17-1992. */ +- pc->month = yyvsp[-2].intval; +- pc->day = -yyvsp[-1].textintval.value; +- pc->year.value = -yyvsp[0].textintval.value; +- pc->year.digits = yyvsp[0].textintval.digits; +- } ++ pc->month = (yyvsp[(1) - (3)].intval); ++ pc->day = -(yyvsp[(2) - (3)].textintval).value; ++ pc->year.value = -(yyvsp[(3) - (3)].textintval).value; ++ pc->year.digits = (yyvsp[(3) - (3)].textintval).digits; ++ ;} + break; + + case 35: +-#line 407 "getdate.y" ++#line 458 "getdate.y" + { +- pc->month = yyvsp[-1].intval; +- pc->day = yyvsp[0].textintval.value; +- } ++ pc->month = (yyvsp[(1) - (2)].intval); ++ pc->day = (yyvsp[(2) - (2)].textintval).value; ++ ;} + break; + + case 36: +-#line 412 "getdate.y" ++#line 463 "getdate.y" + { +- pc->month = yyvsp[-3].intval; +- pc->day = yyvsp[-2].textintval.value; +- pc->year = yyvsp[0].textintval; +- } ++ pc->month = (yyvsp[(1) - (4)].intval); ++ pc->day = (yyvsp[(2) - (4)].textintval).value; ++ pc->year = (yyvsp[(4) - (4)].textintval); ++ ;} + break; + + case 37: +-#line 418 "getdate.y" ++#line 469 "getdate.y" + { +- pc->day = yyvsp[-1].textintval.value; +- pc->month = yyvsp[0].intval; +- } ++ pc->day = (yyvsp[(1) - (2)].textintval).value; ++ pc->month = (yyvsp[(2) - (2)].intval); ++ ;} + break; + + case 38: +-#line 423 "getdate.y" ++#line 474 "getdate.y" + { +- pc->day = yyvsp[-2].textintval.value; +- pc->month = yyvsp[-1].intval; +- pc->year = yyvsp[0].textintval; +- } ++ pc->day = (yyvsp[(1) - (3)].textintval).value; ++ pc->month = (yyvsp[(2) - (3)].intval); ++ pc->year = (yyvsp[(3) - (3)].textintval); ++ ;} + break; + + case 39: +-#line 432 "getdate.y" ++#line 483 "getdate.y" + { + pc->rel_ns = -pc->rel_ns; + pc->rel_seconds = -pc->rel_seconds; +@@ -1574,216 +1965,215 @@ + pc->rel_day = -pc->rel_day; + pc->rel_month = -pc->rel_month; + pc->rel_year = -pc->rel_year; +- } ++ ;} + break; + + case 41: +-#line 446 "getdate.y" +- { pc->rel_year += yyvsp[-1].intval * yyvsp[0].intval; } ++#line 497 "getdate.y" ++ { pc->rel_year += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;} + break; + + case 42: +-#line 448 "getdate.y" +- { pc->rel_year += yyvsp[-1].textintval.value * yyvsp[0].intval; } ++#line 499 "getdate.y" ++ { pc->rel_year += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;} + break; + + case 43: +-#line 450 "getdate.y" +- { pc->rel_year += yyvsp[0].intval; } ++#line 501 "getdate.y" ++ { pc->rel_year += (yyvsp[(1) - (1)].intval); ;} + break; + + case 44: +-#line 452 "getdate.y" +- { pc->rel_month += yyvsp[-1].intval * yyvsp[0].intval; } ++#line 503 "getdate.y" ++ { pc->rel_month += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;} + break; + + case 45: +-#line 454 "getdate.y" +- { pc->rel_month += yyvsp[-1].textintval.value * yyvsp[0].intval; } ++#line 505 "getdate.y" ++ { pc->rel_month += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;} + break; + + case 46: +-#line 456 "getdate.y" +- { pc->rel_month += yyvsp[0].intval; } ++#line 507 "getdate.y" ++ { pc->rel_month += (yyvsp[(1) - (1)].intval); ;} + break; + + case 47: +-#line 458 "getdate.y" +- { pc->rel_day += yyvsp[-1].intval * yyvsp[0].intval; } ++#line 509 "getdate.y" ++ { pc->rel_day += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;} + break; + + case 48: +-#line 460 "getdate.y" +- { pc->rel_day += yyvsp[-1].textintval.value * yyvsp[0].intval; } ++#line 511 "getdate.y" ++ { pc->rel_day += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;} + break; + + case 49: +-#line 462 "getdate.y" +- { pc->rel_day += yyvsp[0].intval; } ++#line 513 "getdate.y" ++ { pc->rel_day += (yyvsp[(1) - (1)].intval); ;} + break; + + case 50: +-#line 464 "getdate.y" +- { pc->rel_hour += yyvsp[-1].intval * yyvsp[0].intval; } ++#line 515 "getdate.y" ++ { pc->rel_hour += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;} + break; + + case 51: +-#line 466 "getdate.y" +- { pc->rel_hour += yyvsp[-1].textintval.value * yyvsp[0].intval; } ++#line 517 "getdate.y" ++ { pc->rel_hour += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;} + break; + + case 52: +-#line 468 "getdate.y" +- { pc->rel_hour += yyvsp[0].intval; } ++#line 519 "getdate.y" ++ { pc->rel_hour += (yyvsp[(1) - (1)].intval); ;} + break; + + case 53: +-#line 470 "getdate.y" +- { pc->rel_minutes += yyvsp[-1].intval * yyvsp[0].intval; } ++#line 521 "getdate.y" ++ { pc->rel_minutes += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;} + break; + + case 54: +-#line 472 "getdate.y" +- { pc->rel_minutes += yyvsp[-1].textintval.value * yyvsp[0].intval; } ++#line 523 "getdate.y" ++ { pc->rel_minutes += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;} + break; + + case 55: +-#line 474 "getdate.y" +- { pc->rel_minutes += yyvsp[0].intval; } ++#line 525 "getdate.y" ++ { pc->rel_minutes += (yyvsp[(1) - (1)].intval); ;} + break; + + case 56: +-#line 476 "getdate.y" +- { pc->rel_seconds += yyvsp[-1].intval * yyvsp[0].intval; } ++#line 527 "getdate.y" ++ { pc->rel_seconds += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;} + break; + + case 57: +-#line 478 "getdate.y" +- { pc->rel_seconds += yyvsp[-1].textintval.value * yyvsp[0].intval; } ++#line 529 "getdate.y" ++ { pc->rel_seconds += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;} + break; + + case 58: +-#line 480 "getdate.y" +- { pc->rel_seconds += yyvsp[-1].timespec.tv_sec * yyvsp[0].intval; pc->rel_ns += yyvsp[-1].timespec.tv_nsec * yyvsp[0].intval; } ++#line 531 "getdate.y" ++ { pc->rel_seconds += (yyvsp[(1) - (2)].timespec).tv_sec * (yyvsp[(2) - (2)].intval); pc->rel_ns += (yyvsp[(1) - (2)].timespec).tv_nsec * (yyvsp[(2) - (2)].intval); ;} + break; + + case 59: +-#line 482 "getdate.y" +- { pc->rel_seconds += yyvsp[-1].timespec.tv_sec * yyvsp[0].intval; pc->rel_ns += yyvsp[-1].timespec.tv_nsec * yyvsp[0].intval; } ++#line 533 "getdate.y" ++ { pc->rel_seconds += (yyvsp[(1) - (2)].timespec).tv_sec * (yyvsp[(2) - (2)].intval); pc->rel_ns += (yyvsp[(1) - (2)].timespec).tv_nsec * (yyvsp[(2) - (2)].intval); ;} + break; + + case 60: +-#line 484 "getdate.y" +- { pc->rel_seconds += yyvsp[0].intval; } ++#line 535 "getdate.y" ++ { pc->rel_seconds += (yyvsp[(1) - (1)].intval); ;} + break; + + case 62: +-#line 490 "getdate.y" +- { pc->rel_year += yyvsp[-1].textintval.value * yyvsp[0].intval; } ++#line 541 "getdate.y" ++ { pc->rel_year += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;} + break; + + case 63: +-#line 492 "getdate.y" +- { pc->rel_month += yyvsp[-1].textintval.value * yyvsp[0].intval; } ++#line 543 "getdate.y" ++ { pc->rel_month += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;} + break; + + case 64: +-#line 494 "getdate.y" +- { pc->rel_day += yyvsp[-1].textintval.value * yyvsp[0].intval; } ++#line 545 "getdate.y" ++ { pc->rel_day += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;} + break; + + case 65: +-#line 496 "getdate.y" +- { pc->rel_hour += yyvsp[-1].textintval.value * yyvsp[0].intval; } ++#line 547 "getdate.y" ++ { pc->rel_hour += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;} + break; + + case 66: +-#line 498 "getdate.y" +- { pc->rel_minutes += yyvsp[-1].textintval.value * yyvsp[0].intval; } ++#line 549 "getdate.y" ++ { pc->rel_minutes += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;} + break; + + case 67: +-#line 500 "getdate.y" +- { pc->rel_seconds += yyvsp[-1].textintval.value * yyvsp[0].intval; } ++#line 551 "getdate.y" ++ { pc->rel_seconds += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;} + break; + + case 71: +-#line 508 "getdate.y" +- { yyval.timespec.tv_sec = yyvsp[0].textintval.value; yyval.timespec.tv_nsec = 0; } ++#line 559 "getdate.y" ++ { (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; ;} + break; + + case 73: +-#line 514 "getdate.y" +- { yyval.timespec.tv_sec = yyvsp[0].textintval.value; yyval.timespec.tv_nsec = 0; } ++#line 565 "getdate.y" ++ { (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; ;} + break; + + case 74: +-#line 519 "getdate.y" ++#line 570 "getdate.y" + { + if (pc->dates_seen && ! pc->year.digits +- && ! pc->rels_seen && (pc->times_seen || 2 < yyvsp[0].textintval.digits)) +- pc->year = yyvsp[0].textintval; ++ && ! pc->rels_seen && (pc->times_seen || 2 < (yyvsp[(1) - (1)].textintval).digits)) ++ pc->year = (yyvsp[(1) - (1)].textintval); + else + { +- if (4 < yyvsp[0].textintval.digits) ++ if (4 < (yyvsp[(1) - (1)].textintval).digits) + { + pc->dates_seen++; +- pc->day = yyvsp[0].textintval.value % 100; +- pc->month = (yyvsp[0].textintval.value / 100) % 100; +- pc->year.value = yyvsp[0].textintval.value / 10000; +- pc->year.digits = yyvsp[0].textintval.digits - 4; ++ pc->day = (yyvsp[(1) - (1)].textintval).value % 100; ++ pc->month = ((yyvsp[(1) - (1)].textintval).value / 100) % 100; ++ pc->year.value = (yyvsp[(1) - (1)].textintval).value / 10000; ++ pc->year.digits = (yyvsp[(1) - (1)].textintval).digits - 4; + } + else + { + pc->times_seen++; +- if (yyvsp[0].textintval.digits <= 2) ++ if ((yyvsp[(1) - (1)].textintval).digits <= 2) + { +- pc->hour = yyvsp[0].textintval.value; ++ pc->hour = (yyvsp[(1) - (1)].textintval).value; + pc->minutes = 0; + } + else + { +- pc->hour = yyvsp[0].textintval.value / 100; +- pc->minutes = yyvsp[0].textintval.value % 100; ++ pc->hour = (yyvsp[(1) - (1)].textintval).value / 100; ++ pc->minutes = (yyvsp[(1) - (1)].textintval).value % 100; + } + pc->seconds.tv_sec = 0; + pc->seconds.tv_nsec = 0; + pc->meridian = MER24; + } + } +- } ++ ;} + break; + + case 75: +-#line 556 "getdate.y" +- { yyval.intval = -1; } ++#line 607 "getdate.y" ++ { (yyval.intval) = -1; ;} + break; + + case 76: +-#line 558 "getdate.y" +- { yyval.intval = yyvsp[0].textintval.value; } ++#line 609 "getdate.y" ++ { (yyval.intval) = (yyvsp[(2) - (2)].textintval).value; ;} + break; + + case 77: +-#line 563 "getdate.y" +- { yyval.intval = MER24; } ++#line 614 "getdate.y" ++ { (yyval.intval) = MER24; ;} + break; + + case 78: +-#line 565 "getdate.y" +- { yyval.intval = yyvsp[0].intval; } ++#line 616 "getdate.y" ++ { (yyval.intval) = (yyvsp[(1) - (1)].intval); ;} + break; + + ++/* Line 1267 of yacc.c. */ ++#line 2171 "getdate.c" ++ default: break; + } ++ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + +-/* Line 1000 of yacc.c. */ +-#line 1782 "getdate.c" +- +- yyvsp -= yylen; +- yyssp -= yylen; +- +- ++ YYPOPSTACK (yylen); ++ yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; +@@ -1812,99 +2202,65 @@ + if (!yyerrstatus) + { + ++yynerrs; +-#if YYERROR_VERBOSE +- yyn = yypact[yystate]; +- +- if (YYPACT_NINF < yyn && yyn < YYLAST) +- { +- YYSIZE_T yysize = 0; +- int yytype = YYTRANSLATE (yychar); +- const char* yyprefix; +- char *yymsg; +- int yyx; +- +- /* Start YYX at -YYN if negative to avoid negative indexes in +- YYCHECK. */ +- int yyxbegin = yyn < 0 ? -yyn : 0; +- +- /* Stay within bounds of both yycheck and yytname. */ +- int yychecklim = YYLAST - yyn; +- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; +- int yycount = 0; +- +- yyprefix = ", expecting "; +- for (yyx = yyxbegin; yyx < yyxend; ++yyx) +- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) ++#if ! YYERROR_VERBOSE ++ yyerror (pc, YY_("syntax error")); ++#else ++ { ++ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); ++ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) ++ { ++ YYSIZE_T yyalloc = 2 * yysize; ++ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) ++ yyalloc = YYSTACK_ALLOC_MAXIMUM; ++ if (yymsg != yymsgbuf) ++ YYSTACK_FREE (yymsg); ++ yymsg = (char *) YYSTACK_ALLOC (yyalloc); ++ if (yymsg) ++ yymsg_alloc = yyalloc; ++ else + { +- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); +- yycount += 1; +- if (yycount == 5) +- { +- yysize = 0; +- break; +- } ++ yymsg = yymsgbuf; ++ yymsg_alloc = sizeof yymsgbuf; + } +- yysize += (sizeof ("syntax error, unexpected ") +- + yystrlen (yytname[yytype])); +- yymsg = (char *) YYSTACK_ALLOC (yysize); +- if (yymsg != 0) +- { +- char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); +- yyp = yystpcpy (yyp, yytname[yytype]); ++ } + +- if (yycount < 5) +- { +- yyprefix = ", expecting "; +- for (yyx = yyxbegin; yyx < yyxend; ++yyx) +- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) +- { +- yyp = yystpcpy (yyp, yyprefix); +- yyp = yystpcpy (yyp, yytname[yyx]); +- yyprefix = " or "; +- } +- } +- yyerror (pc, yymsg); +- YYSTACK_FREE (yymsg); +- } +- else +- yyerror (pc, "syntax error; also virtual memory exhausted"); +- } +- else +-#endif /* YYERROR_VERBOSE */ +- yyerror (pc, "syntax error"); ++ if (0 < yysize && yysize <= yymsg_alloc) ++ { ++ (void) yysyntax_error (yymsg, yystate, yychar); ++ yyerror (pc, yymsg); ++ } ++ else ++ { ++ yyerror (pc, YY_("syntax error")); ++ if (yysize != 0) ++ goto yyexhaustedlab; ++ } ++ } ++#endif + } + + + + if (yyerrstatus == 3) + { +- /* If just tried and failed to reuse lookahead token after an ++ /* If just tried and failed to reuse look-ahead token after an + error, discard it. */ + + if (yychar <= YYEOF) +- { +- /* If at end of input, pop the error token, +- then the rest of the stack, then return failure. */ ++ { ++ /* Return failure if at end of input. */ + if (yychar == YYEOF) +- for (;;) +- { +- YYPOPSTACK; +- if (yyssp == yyss) +- YYABORT; +- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); +- yydestruct (yystos[*yyssp], yyvsp); +- } +- } ++ YYABORT; ++ } + else + { +- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); +- yydestruct (yytoken, &yylval); ++ yydestruct ("Error: discarding", ++ yytoken, &yylval, pc); + yychar = YYEMPTY; +- + } + } + +- /* Else will try to reuse lookahead token after shifting the error ++ /* Else will try to reuse look-ahead token after shifting the error + token. */ + goto yyerrlab1; + +@@ -1914,15 +2270,17 @@ + `---------------------------------------------------*/ + yyerrorlab: + +-#ifdef __GNUC__ +- /* Pacify GCC when the user code never invokes YYERROR and the label +- yyerrorlab therefore never appears in user code. */ +- if (0) ++ /* Pacify compilers like GCC when the user code never invokes ++ YYERROR and the label yyerrorlab therefore never appears in user ++ code. */ ++ if (/*CONSTCOND*/ 0) + goto yyerrorlab; +-#endif + +- yyvsp -= yylen; +- yyssp -= yylen; ++ /* Do not reclaim the symbols of the rule which action triggered ++ this YYERROR. */ ++ YYPOPSTACK (yylen); ++ yylen = 0; ++ YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + +@@ -1951,9 +2309,10 @@ + if (yyssp == yyss) + YYABORT; + +- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); +- yydestruct (yystos[yystate], yyvsp); +- YYPOPSTACK; ++ ++ yydestruct ("Error: popping", ++ yystos[yystate], yyvsp, pc); ++ YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } +@@ -1961,11 +2320,12 @@ + if (yyn == YYFINAL) + YYACCEPT; + +- YYDPRINTF ((stderr, "Shifting error token, ")); +- + *++yyvsp = yylval; + + ++ /* Shift the error token. */ ++ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); ++ + yystate = yyn; + goto yynewstate; + +@@ -1985,25 +2345,43 @@ + goto yyreturn; + + #ifndef yyoverflow +-/*----------------------------------------------. +-| yyoverflowlab -- parser overflow comes here. | +-`----------------------------------------------*/ +-yyoverflowlab: +- yyerror (pc, "parser stack overflow"); ++/*-------------------------------------------------. ++| yyexhaustedlab -- memory exhaustion comes here. | ++`-------------------------------------------------*/ ++yyexhaustedlab: ++ yyerror (pc, YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ + #endif + + yyreturn: ++ if (yychar != YYEOF && yychar != YYEMPTY) ++ yydestruct ("Cleanup: discarding lookahead", ++ yytoken, &yylval, pc); ++ /* Do not reclaim the symbols of the rule which action triggered ++ this YYABORT or YYACCEPT. */ ++ YYPOPSTACK (yylen); ++ YY_STACK_PRINT (yyss, yyssp); ++ while (yyssp != yyss) ++ { ++ yydestruct ("Cleanup: popping", ++ yystos[*yyssp], yyvsp, pc); ++ YYPOPSTACK (1); ++ } + #ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); + #endif +- return yyresult; ++#if YYERROR_VERBOSE ++ if (yymsg != yymsgbuf) ++ YYSTACK_FREE (yymsg); ++#endif ++ /* Make sure YYID is used. */ ++ return YYID (yyresult); + } + + +-#line 568 "getdate.y" ++#line 619 "getdate.y" + + + static table const meridian_table[] = +@@ -2520,7 +2898,7 @@ + + /* Do nothing if the parser reports an error. */ + static int +-yyerror (parser_control *pc ATTRIBUTE_UNUSED, char *s ATTRIBUTE_UNUSED) ++yyerror (parser_control *pc ATTRIBUTE_UNUSED, const char *s ATTRIBUTE_UNUSED) + { + return 0; + } +@@ -2793,7 +3171,8 @@ + + sizeof pc.time_zone * CHAR_BIT / 3]; + if (!tz_was_altered) + tz0 = get_tz (tz0buf); +- sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0), ++ snprintf(tz1buf, sizeof(tz1buf), ++ "XXX%s%ld:%02d", "-" + (time_zone < 0), + abs_time_zone_hour, abs_time_zone_min); + if (setenv ("TZ", tz1buf, 1) != 0) + goto fail; +@@ -2891,7 +3270,7 @@ + ok = false; + done: + if (tz_was_altered) +- ok &= (tz0 ? setenv ("TZ", tz0, 1) : unsetenv ("TZ")) == 0; ++ ok &= (tz0 ? setenv("TZ", tz0, 1) : (unsetenv("TZ"), 0)) == 0; + if (tz0 != tz0buf) + free (tz0); + return ok; +@@ -2900,37 +3279,52 @@ + #if TEST + + int +-main (int ac, char **av) ++main(int argc, char **argv) + { + char buff[BUFSIZ]; ++ int cmd = 0; + +- printf ("Enter date, or blank line to exit.\n\t> "); ++ if (argc > 1) { ++ int i = 1; ++ buff[0] = '\0'; ++ while (i < argc) { ++ if (i > 1) ++ strlcat(buff, " ", BUFSIZ); ++ strlcat(buff, argv[i++], BUFSIZ); ++ } ++ cmd++; ++ goto once; ++ } ++ ++ printf("Enter date, or blank line to exit.\n> "); + fflush (stdout); + + buff[BUFSIZ - 1] = '\0'; +- while (fgets (buff, BUFSIZ - 1, stdin) && buff[0]) ++ while (fgets(buff, BUFSIZ - 1, stdin) && buff[0] && ++ buff[0] != '\r' && buff[0] != '\n') + { + struct timespec d; + struct tm const *tm; ++ once: + if (! get_date (&d, buff, NULL)) + printf ("Bad format - couldn't convert.\n"); + else if (! (tm = localtime (&d.tv_sec))) + { +- long int sec = d.tv_sec; +- printf ("localtime (%ld) failed\n", sec); ++ printf ("localtime (%lld) failed\n", (long long)d.tv_sec); + } + else + { + int ns = d.tv_nsec; +- printf ("%04ld-%02d-%02d %02d:%02d:%02d.%09d\n", +- tm->tm_year + 1900L, tm->tm_mon + 1, tm->tm_mday, ++ printf ("%13lld =\t%04ld-%02d-%02d %02d:%02d:%02d.%09d\n", ++ (long long)d.tv_sec, (long)tm->tm_year + 1900, ++ tm->tm_mon + 1, tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec, ns); + } +- printf ("\t> "); ++ if (cmd) ++ return 0; ++ printf ("> "); + fflush (stdout); + } + return 0; + } + #endif /* TEST */ +- +- +--- cvs-1.12.13+real.orig/lib/getdate.h ++++ cvs-1.12.13+real/lib/getdate.h +@@ -1,6 +1,9 @@ ++/* $MirOS: src/gnu/usr.bin/cvs/lib/getdate.h,v 1.7 2016/10/22 20:15:03 tg Exp $ */ ++ + /* Parse a string into an internal time stamp. + +- Copyright (C) 1995, 1997, 1998, 2003, 2004 Free Software Foundation, Inc. ++ Copyright (C) 1995, 1997, 1998, 2003, 2004, 2005 ++ Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -16,7 +19,17 @@ + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + ++#ifndef GETDATE_H ++#define GETDATE_H ++ + #include <stdbool.h> ++#ifndef IN_RCS + #include "timespec.h" ++#else ++#include <sys/time.h> ++#include <time.h> ++#endif + + bool get_date (struct timespec *, char const *, struct timespec const *); ++ ++#endif /* GETDATE_H */ +--- cvs-1.12.13+real.orig/lib/getdate.y ++++ cvs-1.12.13+real/lib/getdate.y +@@ -1,8 +1,11 @@ + %{ + /* Parse a string into an internal time stamp. + +- Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005 Free Software +- Foundation, Inc. ++ Copyright (C) 1995, 1997, 1998, 2003, 2004, 2005 ++ Free Software Foundation, Inc. ++ ++ Copyright (c) 2005, 2006, 2007, 2010, 2016 ++ mirabilos <m@mirbsd.org> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by +@@ -38,6 +41,10 @@ + + #include "getdate.h" + ++#ifdef USE_LIBBSD ++size_t strlcat(char *, const char *, size_t); ++#endif ++ + /* There's no need to extend the stack, so there's no need to involve + alloca. */ + #define YYSTACK_USE_ALLOCA 0 +@@ -65,10 +72,44 @@ + #include <stdlib.h> + #include <string.h> + ++#ifndef _STDLIB_H ++#define _STDLIB_H 1 /* GNU bison needs this */ ++#endif ++ ++#ifndef IN_RCS + #include "setenv.h" + #include "xalloc.h" ++#else /* IN_RCS */ ++#include <unistd.h> ++ ++#define HAVE_STRUCT_TM_TM_ZONE 1 ++#define HAVE_TM_GMTOFF 1 ++ ++#define gettime(ts) clock_gettime(CLOCK_REALTIME,(ts)) ++ ++static void * ++xmalloc(size_t s) ++{ ++ static const char xmalloc_enomem[] = "memory exhausted\n"; ++ void *x; ++ ++ if ((x = malloc(s)) == NULL) { ++ write(2, xmalloc_enomem, sizeof(xmalloc_enomem) - 1); ++ exit(1); ++ } + +-#if STDC_HEADERS || (! defined isascii && ! HAVE_ISASCII) ++ return (x); ++} ++ ++static void * ++xmemdup(void const *p, size_t s) ++{ ++ return (memcpy(xmalloc(s), p, s)); ++} ++#endif /* IN_RCS */ ++ ++#if (defined(STDC_HEADERS) && STDC_HEADERS) || \ ++ (!defined(isascii) && !HAVE_ISASCII) + # define IN_CTYPE_DOMAIN(c) 1 + #else + # define IN_CTYPE_DOMAIN(c) isascii (c) +@@ -87,7 +128,8 @@ + of `digit' even when the host does not conform to POSIX. */ + #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) + +-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ ++#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || \ ++ (defined(__STRICT_ANSI__) && __STRICT_ANSI__) + # define __attribute__(x) + #endif + +@@ -95,6 +137,15 @@ + # define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) + #endif + ++#ifndef __IDSTRING ++#define __IDSTRING(varname, string) \ ++ static const char varname[] __attribute__((__used__)) = \ ++ "@(""#)" #varname ": " string ++#endif ++ ++__IDSTRING(rcsid_code, "$MirOS: src/gnu/usr.bin/cvs/lib/getdate.y,v 1.11 2016/10/22 22:45:50 tg Exp $"); ++/* placeholder line for __IDSTRING(rcsid_bron, "$miros: ..."); so that cpp #line directives work */ ++ + /* Shift A right by B bits portably, by dividing A by 2**B and + truncating towards minus infinity. A and B should be free of side + effects, and B should be in the range 0 <= B <= INT_BITS - 2, where +@@ -191,7 +242,7 @@ + + union YYSTYPE; + static int yylex (union YYSTYPE *, parser_control *); +-static int yyerror (parser_control *, char *); ++static int yyerror (parser_control *, const char *); + static long int time_zone_hhmm (textint, long int); + + %} +@@ -1081,7 +1132,7 @@ + + /* Do nothing if the parser reports an error. */ + static int +-yyerror (parser_control *pc ATTRIBUTE_UNUSED, char *s ATTRIBUTE_UNUSED) ++yyerror (parser_control *pc ATTRIBUTE_UNUSED, const char *s ATTRIBUTE_UNUSED) + { + return 0; + } +@@ -1354,7 +1405,8 @@ + + sizeof pc.time_zone * CHAR_BIT / 3]; + if (!tz_was_altered) + tz0 = get_tz (tz0buf); +- sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0), ++ snprintf(tz1buf, sizeof(tz1buf), ++ "XXX%s%ld:%02d", "-" + (time_zone < 0), + abs_time_zone_hour, abs_time_zone_min); + if (setenv ("TZ", tz1buf, 1) != 0) + goto fail; +@@ -1452,7 +1504,7 @@ + ok = false; + done: + if (tz_was_altered) +- ok &= (tz0 ? setenv ("TZ", tz0, 1) : unsetenv ("TZ")) == 0; ++ ok &= (tz0 ? setenv("TZ", tz0, 1) : (unsetenv("TZ"), 0)) == 0; + if (tz0 != tz0buf) + free (tz0); + return ok; +@@ -1461,33 +1513,50 @@ + #if TEST + + int +-main (int ac, char **av) ++main(int argc, char **argv) + { + char buff[BUFSIZ]; ++ int cmd = 0; ++ ++ if (argc > 1) { ++ int i = 1; ++ buff[0] = '\0'; ++ while (i < argc) { ++ if (i > 1) ++ strlcat(buff, " ", BUFSIZ); ++ strlcat(buff, argv[i++], BUFSIZ); ++ } ++ cmd++; ++ goto once; ++ } + +- printf ("Enter date, or blank line to exit.\n\t> "); ++ printf("Enter date, or blank line to exit.\n> "); + fflush (stdout); + + buff[BUFSIZ - 1] = '\0'; +- while (fgets (buff, BUFSIZ - 1, stdin) && buff[0]) ++ while (fgets(buff, BUFSIZ - 1, stdin) && buff[0] && ++ buff[0] != '\r' && buff[0] != '\n') + { + struct timespec d; + struct tm const *tm; ++ once: + if (! get_date (&d, buff, NULL)) + printf ("Bad format - couldn't convert.\n"); + else if (! (tm = localtime (&d.tv_sec))) + { +- long int sec = d.tv_sec; +- printf ("localtime (%ld) failed\n", sec); ++ printf ("localtime (%lld) failed\n", (long long)d.tv_sec); + } + else + { + int ns = d.tv_nsec; +- printf ("%04ld-%02d-%02d %02d:%02d:%02d.%09d\n", +- tm->tm_year + 1900L, tm->tm_mon + 1, tm->tm_mday, ++ printf ("%13lld =\t%04ld-%02d-%02d %02d:%02d:%02d.%09d\n", ++ (long long)d.tv_sec, (long)tm->tm_year + 1900, ++ tm->tm_mon + 1, tm->tm_mday, + tm->tm_hour, tm->tm_min, tm->tm_sec, ns); + } +- printf ("\t> "); ++ if (cmd) ++ return 0; ++ printf ("> "); + fflush (stdout); + } + return 0; +--- cvs-1.12.13+real.orig/lib/getdelim.c ++++ cvs-1.12.13+real/lib/getdelim.c +@@ -48,7 +48,6 @@ + { + int result = 0; + ssize_t cur_len = 0; +- ssize_t len; + + if (lineptr == NULL || n == NULL || fp == NULL) + { +@@ -71,7 +70,6 @@ + + for (;;) + { +- char *t; + int i; + + i = getc (fp); +--- cvs-1.12.13+real.orig/lib/pagealign_alloc.c ++++ cvs-1.12.13+real/lib/pagealign_alloc.c +@@ -44,6 +44,10 @@ + #include "xalloc.h" + #include "gettext.h" + ++#if HAVE_MMAP && !defined(HAVE_MAP_ANONYMOUS) ++#include <stdio.h> ++#endif ++ + #define _(str) gettext (str) + + #if HAVE_MMAP +@@ -132,6 +136,7 @@ + const int fd = -1; + const int flags = MAP_ANONYMOUS | MAP_PRIVATE; + # else /* !HAVE_MAP_ANONYMOUS */ ++ static int beenhere = 0; + static int fd = -1; /* Only open /dev/zero once in order to avoid limiting + the amount of memory we may allocate based on the + number of open file descriptors. */ +@@ -140,7 +145,20 @@ + { + fd = open ("/dev/zero", O_RDONLY, 0666); + if (fd < 0) +- error (EXIT_FAILURE, errno, _("Failed to open /dev/zero for read")); ++ { ++ if (!beenhere) ++ { ++ beenhere = 1; ++ error (EXIT_FAILURE, errno, _("Failed to open /dev/zero for read")); ++ } ++ else ++ { ++ fprintf (stderr, "Fatal in pagealign: %s\n", ++ _("Failed to open /dev/zero for read")); ++ fflush (stderr); ++ _exit (EXIT_FAILURE); ++ } ++ } + } + # endif /* HAVE_MAP_ANONYMOUS */ + ret = mmap (NULL, size, PROT_READ | PROT_WRITE, flags, fd, 0); +--- cvs-1.12.13+real.orig/lib/regcomp.c ++++ cvs-1.12.13+real/lib/regcomp.c +@@ -1652,8 +1652,6 @@ + && dfa->edests[node].nelem + && !dfa->nodes[dfa->edests[node].elems[0]].duplicated) + { +- Idx org_node, cur_node; +- org_node = cur_node = node; + err = duplicate_node_closure (dfa, node, node, node, constraint); + if (BE (err != REG_NOERROR, 0)) + return err; +--- cvs-1.12.13+real.orig/lib/regex_internal.c ++++ cvs-1.12.13+real/lib/regex_internal.c +@@ -629,7 +629,7 @@ + + if (pstr->is_utf8) + { +- const unsigned char *raw, *p, *q, *end; ++ const unsigned char *raw, *p, *end; + + /* Special case UTF-8. Multi-byte chars start with any + byte other than 0x80 - 0xbf. */ +@@ -641,17 +641,8 @@ + mbstate_t cur_state; + wchar_t wc2; + Idx mlen = raw + pstr->len - p; +- unsigned char buf[6]; + size_t mbclen; + +- q = p; +- if (BE (pstr->trans != NULL, 0)) +- { +- int i = mlen < 6 ? mlen : 6; +- while (--i >= 0) +- buf[i] = pstr->trans[p[i]]; +- q = buf; +- } + /* XXX Don't use mbrtowc, we know which conversion + to use (UTF-8 -> UCS4). */ + memset (&cur_state, 0, sizeof (cur_state)); +--- cvs-1.12.13+real.orig/lib/regex_internal.h ++++ cvs-1.12.13+real/lib/regex_internal.h +@@ -451,7 +451,9 @@ + #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx)) + #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx)) + ++#ifdef HAVE_ALLOCA_H + #include <alloca.h> ++#endif + + #ifndef _LIBC + # if HAVE_ALLOCA +--- cvs-1.12.13+real.orig/lib/sunos57-select.c ++++ cvs-1.12.13+real/lib/sunos57-select.c +@@ -40,6 +40,11 @@ + #include <sys/stat.h> + #include <errno.h> + ++#if defined(STDC_HEADERS) || defined(HAVE_STRING_H) ++# include <string.h> ++#else ++# include <strings.h> ++#endif + #ifdef HAVE_UNISTD_H + # include <unistd.h> + #endif /* HAVE_UNISTD_H */ +--- cvs-1.12.13+real.orig/lib/test-getdate.sh ++++ cvs-1.12.13+real/lib/test-getdate.sh +@@ -1,4 +1,5 @@ + #! /bin/sh ++# $MirOS: src/gnu/usr.bin/cvs/lib/test-getdate.sh,v 1.2 2016/10/22 15:34:32 tg Exp $ + + # Test that a getdate executable meets its specification. + # +@@ -19,6 +20,11 @@ + # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + + ++# as this uses POSIX behaviour and does not count leap seconds... ++if test -n "$GETDATE_LD_PRELOAD"; then ++ LD_PRELOAD=$GETDATE_LD_PRELOAD ++ export LD_PRELOAD ++fi + + ### + ### Globals +@@ -113,10 +119,9 @@ + NTZ=`TZ=$1 date +%Z` + if test "$NTZ" = "$UTZ" || test "$NTZ" = "$1"; then + skipreason="$1 is not a recognized timezone on this system" +- return `false` +- else +- return `:` ++ return 1 + fi ++ : + } + + +@@ -184,22 +189,22 @@ + + cat >getdate-expected <<EOF + Enter date, or blank line to exit. +- > Bad format - couldn't convert. +- > Bad format - couldn't convert. +- > 1972-12-05 00:00:00.000000000 +- > 1974-03-29 00:00:00.000000000 +- > 1996-05-12 13:57:45.000000000 +- > 2012-05-12 00:00:00.000000000 +- > 1996-05-12 00:00:00.000000000 +- > Bad format - couldn't convert. +- > Bad format - couldn't convert. +- > 1970-01-01 02:00:00.000000000 +- > Bad format - couldn't convert. +- > 1969-12-31 22:00:00.000000000 +- > Bad format - couldn't convert. +- > 1970-01-01 06:00:00.000000000 +- > 1997-01-12 00:00:00.000000000 +- > ++> Bad format - couldn't convert. ++> Bad format - couldn't convert. ++> 92361600 = 1972-12-05 00:00:00.000000000 ++> 133747200 = 1974-03-29 00:00:00.000000000 ++> 831909465 = 1996-05-12 13:57:45.000000000 ++> 1336780800 = 2012-05-12 00:00:00.000000000 ++> 831859200 = 1996-05-12 00:00:00.000000000 ++> Bad format - couldn't convert. ++> Bad format - couldn't convert. ++> 7200 = 1970-01-01 02:00:00.000000000 ++> Bad format - couldn't convert. ++> -7200 = 1969-12-31 22:00:00.000000000 ++> Bad format - couldn't convert. ++> 21600 = 1970-01-01 06:00:00.000000000 ++> 853027200 = 1997-01-12 00:00:00.000000000 ++> + EOF + + ./getdate >getdate-got <<EOF +@@ -235,22 +240,22 @@ + if valid_timezone $TZ; then + cat >getdate-expected <<EOF + Enter date, or blank line to exit. +- > 2005-03-01 00:00:00.000000000 +- > 2005-03-27 00:00:00.000000000 +- > 2005-03-28 01:00:00.000000000 +- > 2005-03-28 01:00:00.000000000 +- > 2005-03-29 01:00:00.000000000 +- > 2005-03-29 01:00:00.000000000 +- > 2005-03-30 01:00:00.000000000 +- > 2005-03-30 01:00:00.000000000 +- > 2005-03-31 01:00:00.000000000 +- > 2005-03-31 01:00:00.000000000 +- > 2005-04-01 01:00:00.000000000 +- > 2005-04-01 01:00:00.000000000 +- > 2005-04-10 01:00:00.000000000 +- > 2005-04-10 01:00:00.000000000 +- > 2005-04-01 00:00:00.000000000 +- > ++> 1109635200 = 2005-03-01 00:00:00.000000000 ++> 1111881600 = 2005-03-27 00:00:00.000000000 ++> 1111968000 = 2005-03-28 01:00:00.000000000 ++> 1111968000 = 2005-03-28 01:00:00.000000000 ++> 1112054400 = 2005-03-29 01:00:00.000000000 ++> 1112054400 = 2005-03-29 01:00:00.000000000 ++> 1112140800 = 2005-03-30 01:00:00.000000000 ++> 1112140800 = 2005-03-30 01:00:00.000000000 ++> 1112227200 = 2005-03-31 01:00:00.000000000 ++> 1112227200 = 2005-03-31 01:00:00.000000000 ++> 1112313600 = 2005-04-01 01:00:00.000000000 ++> 1112313600 = 2005-04-01 01:00:00.000000000 ++> 1113091200 = 2005-04-10 01:00:00.000000000 ++> 1113091200 = 2005-04-10 01:00:00.000000000 ++> 1112310000 = 2005-04-01 00:00:00.000000000 ++> + EOF + + ./getdate >getdate-got <<EOF +@@ -297,20 +302,20 @@ + if valid_timezone $TZ; then + cat >getdate-expected <<EOF + Enter date, or blank line to exit. +- > 2005-03-01 00:00:00.000000000 +- > 2005-02-28 18:00:00.000000000 +- > 2005-04-01 00:00:00.000000000 +- > Bad format - couldn't convert. +- > 2005-04-30 19:00:00.000000000 +- > 2005-04-30 20:00:00.000000000 +- > 2005-05-01 00:00:00.000000000 +- > 2005-04-30 20:00:00.000000000 +- > Bad format - couldn't convert. +- > 2005-05-31 19:00:00.000000000 +- > 2005-05-31 20:00:00.000000000 +- > 2005-06-01 00:00:00.000000000 +- > 2005-05-31 20:00:00.000000000 +- > ++> 1109653200 = 2005-03-01 00:00:00.000000000 ++> 1109631600 = 2005-02-28 18:00:00.000000000 ++> 1112331600 = 2005-04-01 00:00:00.000000000 ++> Bad format - couldn't convert. ++> 1114902000 = 2005-04-30 19:00:00.000000000 ++> 1114905600 = 2005-04-30 20:00:00.000000000 ++> 1114920000 = 2005-05-01 00:00:00.000000000 ++> 1114905600 = 2005-04-30 20:00:00.000000000 ++> Bad format - couldn't convert. ++> 1117580400 = 2005-05-31 19:00:00.000000000 ++> 1117584000 = 2005-05-31 20:00:00.000000000 ++> 1117598400 = 2005-06-01 00:00:00.000000000 ++> 1117584000 = 2005-05-31 20:00:00.000000000 ++> + EOF + + ./getdate >getdate-got <<EOF +--- cvs-1.12.13+real.orig/lib/vasnprintf.c ++++ cvs-1.12.13+real/lib/vasnprintf.c +@@ -26,7 +26,9 @@ + # include <config.h> + #endif + #ifndef IN_LIBINTL ++# ifdef HAVE_ALLOCA_H + # include <alloca.h> ++# endif + #endif + + /* Specification. */ +@@ -100,7 +102,12 @@ + # define DIRECTIVE char_directive + # define DIRECTIVES char_directives + # define PRINTF_PARSE printf_parse ++#if 0 ++/* disabled for security reasons, to avoid having %n in writable memory */ + # define USE_SNPRINTF (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) ++#else ++# define USE_SNPRINTF 0 ++#endif + # if HAVE_DECL__SNPRINTF + /* Windows. */ + # define SNPRINTF _snprintf +@@ -591,11 +598,12 @@ + { + size_t maxlen; + int count; +- int retcount; ++#if USE_SNPRINTF ++ int retcount = 0; ++#endif + + maxlen = allocated - length; + count = -1; +- retcount = 0; + + #if USE_SNPRINTF + # define SNPRINTF_BUF(arg) \ +--- cvs-1.12.13+real.orig/m4/getdate.m4 ++++ cvs-1.12.13+real/m4/getdate.m4 +@@ -6,7 +6,7 @@ + + AC_DEFUN([gl_GETDATE], + [ +- AC_LIBSOURCES([getdate.h, getdate.y]) ++ AC_LIBSOURCES([getdate.h, getdate.c]) + AC_LIBOBJ([getdate]) + + dnl Prerequisites of lib/getdate.h. +--- cvs-1.12.13+real.orig/m4/longdouble.m4 ++++ cvs-1.12.13+real/m4/longdouble.m4 +@@ -8,21 +8,12 @@ + dnl Test whether the compiler supports the 'long double' type. + dnl Prerequisite: AC_PROG_CC + ++dnl $MirOS: src/gnu/usr.bin/cvs/m4/longdouble.m4,v 1.4 2016/10/22 03:36:43 tg Exp $ ++ + AC_DEFUN([gt_TYPE_LONGDOUBLE], + [ +- AC_CACHE_CHECK([for long double], gt_cv_c_long_double, +- [if test "$GCC" = yes; then +- gt_cv_c_long_double=yes +- else +- AC_TRY_COMPILE([ +- /* The Stardent Vistra knows sizeof(long double), but does not support it. */ +- long double foo = 0.0; +- /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ +- int array [2*(sizeof(long double) >= sizeof(double)) - 1]; +- ], , +- gt_cv_c_long_double=yes, gt_cv_c_long_double=no) +- fi]) +- if test $gt_cv_c_long_double = yes; then ++ AC_CHECK_TYPE([long double], [gt_cv_c_long_double=yes], [gt_cv_c_long_double=no]) ++ if test x"$gt_cv_c_long_double" = x"yes"; then + AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.]) + fi + ]) +--- cvs-1.12.13+real.orig/m4/mktime.m4 ++++ cvs-1.12.13+real/m4/mktime.m4 +@@ -6,6 +6,9 @@ + + dnl From Jim Meyering. + ++dnl Test program updated to git faefb77009239f82ac2f77ac0c10d71d4f38af07 ++dnl for Debian. ++ + # Redefine AC_FUNC_MKTIME, to fix a bug in Autoconf 2.57 and earlier. + # This redefinition can be removed once a new version of Autoconf comes out. + # The redefinition is taken from +@@ -19,27 +22,16 @@ + AC_CACHE_CHECK([for working mktime], ac_cv_func_working_mktime, + [AC_RUN_IFELSE([AC_LANG_SOURCE( + [[/* Test program from Paul Eggert and Tony Leneis. */ +-#if TIME_WITH_SYS_TIME +-# include <sys/time.h> +-# include <time.h> +-#else +-# if HAVE_SYS_TIME_H +-# include <sys/time.h> +-# else +-# include <time.h> +-# endif +-#endif ++#include <limits.h> ++#include <stdlib.h> ++#include <time.h> + +-#if HAVE_STDLIB_H +-# include <stdlib.h> +-#endif +- +-#if HAVE_UNISTD_H ++#ifdef HAVE_UNISTD_H + # include <unistd.h> + #endif + +-#if !HAVE_ALARM +-# define alarm(X) /* empty */ ++#if HAVE_DECL_ALARM ++# include <signal.h> + #endif + + /* Work around redefinition to rpl_putenv by other config tests. */ +@@ -55,9 +47,9 @@ + }; + #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) + +-/* Fail if mktime fails to convert a date in the spring-forward gap. ++/* Return 0 if mktime fails to convert a date in the spring-forward gap. + Based on a problem report from Andreas Jaeger. */ +-static void ++static int + spring_forward_gap () + { + /* glibc (up to about 1998-10-07) failed this test. */ +@@ -76,29 +68,25 @@ + tm.tm_min = 0; + tm.tm_sec = 0; + tm.tm_isdst = -1; +- if (mktime (&tm) == (time_t)-1) +- exit (1); ++ return mktime (&tm) != (time_t) -1; + } + +-static void +-mktime_test1 (now) +- time_t now; ++static int ++mktime_test1 (time_t now) + { + struct tm *lt; +- if ((lt = localtime (&now)) && mktime (lt) != now) +- exit (1); ++ return ! (lt = localtime (&now)) || mktime (lt) == now; + } + +-static void +-mktime_test (now) +- time_t now; ++static int ++mktime_test (time_t now) + { +- mktime_test1 (now); +- mktime_test1 ((time_t) (time_t_max - now)); +- mktime_test1 ((time_t) (time_t_min + now)); ++ return (mktime_test1 (now) ++ && mktime_test1 ((time_t) (time_t_max - now)) ++ && mktime_test1 ((time_t) (time_t_min + now))); + } + +-static void ++static int + irix_6_4_bug () + { + /* Based on code from Ariel Faigon. */ +@@ -111,13 +99,11 @@ + tm.tm_sec = 0; + tm.tm_isdst = -1; + mktime (&tm); +- if (tm.tm_mon != 2 || tm.tm_mday != 31) +- exit (1); ++ return tm.tm_mon == 2 && tm.tm_mday == 31; + } + +-static void +-bigtime_test (j) +- int j; ++static int ++bigtime_test (int j) + { + struct tm tm; + time_t now; +@@ -127,56 +113,110 @@ + { + struct tm *lt = localtime (&now); + if (! (lt +- && lt->tm_year == tm.tm_year +- && lt->tm_mon == tm.tm_mon +- && lt->tm_mday == tm.tm_mday +- && lt->tm_hour == tm.tm_hour +- && lt->tm_min == tm.tm_min +- && lt->tm_sec == tm.tm_sec +- && lt->tm_yday == tm.tm_yday +- && lt->tm_wday == tm.tm_wday +- && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) +- == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) +- exit (1); ++ && lt->tm_year == tm.tm_year ++ && lt->tm_mon == tm.tm_mon ++ && lt->tm_mday == tm.tm_mday ++ && lt->tm_hour == tm.tm_hour ++ && lt->tm_min == tm.tm_min ++ && lt->tm_sec == tm.tm_sec ++ && lt->tm_yday == tm.tm_yday ++ && lt->tm_wday == tm.tm_wday ++ && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) ++ == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) ++ return 0; + } ++ return 1; ++} ++ ++static int ++year_2050_test () ++{ ++ /* The correct answer for 2050-02-01 00:00:00 in Pacific time, ++ ignoring leap seconds. */ ++ unsigned long int answer = 2527315200UL; ++ ++ struct tm tm; ++ time_t t; ++ tm.tm_year = 2050 - 1900; ++ tm.tm_mon = 2 - 1; ++ tm.tm_mday = 1; ++ tm.tm_hour = tm.tm_min = tm.tm_sec = 0; ++ tm.tm_isdst = -1; ++ ++ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" ++ instead of "TZ=America/Vancouver" in order to detect the bug even ++ on systems that don't support the Olson extension, or don't have the ++ full zoneinfo tables installed. */ ++ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); ++ ++ t = mktime (&tm); ++ ++ /* Check that the result is either a failure, or close enough ++ to the correct answer that we can assume the discrepancy is ++ due to leap seconds. */ ++ return (t == (time_t) -1 ++ || (0 < t && answer - 120 <= t && t <= answer + 120)); + } + + int + main () + { ++ int result = 0; + time_t t, delta; + int i, j; ++ int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1; ++ int time_t_signed = ! ((time_t) 0 < (time_t) -1); + ++#if HAVE_DECL_ALARM + /* This test makes some buggy mktime implementations loop. + Give up after 60 seconds; a mktime slower than that + isn't worth using anyway. */ ++ signal (SIGALRM, SIG_DFL); + alarm (60); ++#endif ++ ++ time_t_max = (! time_t_signed ++ ? (time_t) -1 ++ : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1) ++ * 2 + 1)); ++ time_t_min = (! time_t_signed ++ ? (time_t) 0 ++ : time_t_signed_magnitude ++ ? ~ (time_t) 0 ++ : ~ time_t_max); + +- for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) +- continue; +- time_t_max--; +- if ((time_t) -1 < 0) +- for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2) +- continue; + delta = time_t_max / 997; /* a suitable prime number */ + for (i = 0; i < N_STRINGS; i++) + { + if (tz_strings[i]) +- putenv (tz_strings[i]); ++ putenv (tz_strings[i]); + +- for (t = 0; t <= time_t_max - delta; t += delta) +- mktime_test (t); +- mktime_test ((time_t) 1); +- mktime_test ((time_t) (60 * 60)); +- mktime_test ((time_t) (60 * 60 * 24)); +- +- for (j = 1; 0 < j; j *= 2) +- bigtime_test (j); +- bigtime_test (j - 1); ++ for (t = 0; t <= time_t_max - delta && (result & 1) == 0; t += delta) ++ if (! mktime_test (t)) ++ result |= 1; ++ if ((result & 2) == 0 ++ && ! (mktime_test ((time_t) 1) ++ && mktime_test ((time_t) (60 * 60)) ++ && mktime_test ((time_t) (60 * 60 * 24)))) ++ result |= 2; ++ ++ for (j = 1; (result & 4) == 0; j <<= 1) ++ { ++ if (! bigtime_test (j)) ++ result |= 4; ++ if (INT_MAX / 2 < j) ++ break; ++ } ++ if ((result & 8) == 0 && ! bigtime_test (INT_MAX)) ++ result |= 8; + } +- irix_6_4_bug (); +- spring_forward_gap (); +- exit (0); ++ if (! irix_6_4_bug ()) ++ result |= 16; ++ if (! spring_forward_gap ()) ++ result |= 32; ++ if (! year_2050_test ()) ++ result |= 64; ++ return result; + }]])], + [ac_cv_func_working_mktime=yes], + [ac_cv_func_working_mktime=no], +--- cvs-1.12.13+real.orig/man/cvs.5 ++++ cvs-1.12.13+real/man/cvs.5 +@@ -1,3 +1,4 @@ ++.\" $MirOS: src/gnu/usr.bin/cvs/man/cvs.5,v 1.3 2010/09/19 19:43:00 tg Exp $ + .TH cvs 5 "12 February 1992" + .\" Full space in nroff; half space in troff + .de SP +@@ -238,9 +239,9 @@ + .B add + for `tag', + .B mov +-for `tag -F', and ++for `tag \-F', and + .B del +-for `tag -d`), ++for `tag \-d`), + .I repository , + and any remaining are pairs of + .B "filename revision" . +--- cvs-1.12.13+real.orig/src/Makefile.am ++++ cvs-1.12.13+real/src/Makefile.am +@@ -1,4 +1,5 @@ + ## Process this file with automake to produce Makefile.in ++# $MirOS: src/gnu/usr.bin/cvs/src/Makefile.am,v 1.8 2011/12/04 22:50:41 tg Exp $ + # Makefile for GNU CVS program. + # + # Copyright (C) 1986-2005 The Free Software Foundation, Inc. +@@ -22,7 +23,6 @@ + -I$(top_srcdir)/diff $(ZLIB_CPPFLAGS) + + bin_PROGRAMS = cvs +-bin_SCRIPTS = cvsbug + + # The cvs executable + cvs_SOURCES = \ +@@ -79,6 +79,7 @@ + stack.c stack.h \ + status.c \ + subr.c subr.h \ ++ suck.c \ + tag.c \ + update.c \ + version.c \ +@@ -109,6 +110,7 @@ + ../diff/libdiff.a \ + ../lib/libcvs.a \ + $(ZLIB_LIBS) ++cvs_LDFLAGS = -Wl,--as-needed + cvs_LDADD = $(cvs_client_objects) \ + ../diff/libdiff.a \ + ../lib/libcvs.a \ +--- cvs-1.12.13+real.orig/src/add.c ++++ cvs-1.12.13+real/src/add.c +@@ -532,7 +532,8 @@ + free (bbuf); + } + Register (entries, finfo.file, "0", +- timestamp ? timestamp : vers->ts_user, ++ timestamp ? timestamp : ++ vers->ts_user_ists ? "locally added" : vers->ts_user, + vers->options, vers->tag, vers->date, NULL); + if (timestamp) free (timestamp); + #ifdef SERVER_SUPPORT +@@ -784,7 +785,7 @@ + } + + /* setup the log message */ +- message = Xasprintf ("Directory %s added to the repository\n%s%s%s%s%s%s", ++ message = Xasprintf ("Directory %s put under version control\n%s%s%s%s%s%s", + rcsdir, + tag ? "--> Using per-directory sticky tag `" : "", + tag ? tag : "", tag ? "'\n" : "", +--- cvs-1.12.13+real.orig/src/admin.c ++++ cvs-1.12.13+real/src/admin.c +@@ -147,6 +147,7 @@ + TRACE (TRACE_FUNCTION, "postadmin_proc (%s, %s)", repository, filter); + + /* %c = cvs_cmd_name ++ * %I = commit ID + * %R = referrer + * %p = shortrepos + * %r = repository +@@ -162,6 +163,7 @@ + #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */ + filter, + "c", "s", cvs_cmd_name, ++ "I", "s", global_session_id, + #ifdef SERVER_SUPPORT + "R", "s", referrer ? referrer->original : "NONE", + #endif /* SERVER_SUPPORT */ +--- cvs-1.12.13+real.orig/src/annotate.c ++++ cvs-1.12.13+real/src/annotate.c +@@ -21,6 +21,7 @@ + + /* Options from the command line. */ + ++static int backwards = 0; + static int force_tag_match = 1; + static int force_binary = 0; + static char *tag = NULL; +@@ -36,7 +37,8 @@ + + static const char *const annotate_usage[] = + { +- "Usage: %s %s [-lRfF] [-r rev] [-D date] [files...]\n", ++ "Usage: %s %s [-blRfF] [-r rev] [-D date] [files...]\n", ++ "\t-b\tBackwards, show when a line was removed.\n", + "\t-l\tLocal directory only, no recursion.\n", + "\t-R\tProcess directories recursively.\n", + "\t-f\tUse head revision if tag/date not found.\n", +@@ -63,10 +65,13 @@ + usage (annotate_usage); + + optind = 0; +- while ((c = getopt (argc, argv, "+lr:D:fFR")) != -1) ++ while ((c = getopt (argc, argv, "+blr:D:fFR")) != -1) + { + switch (c) + { ++ case 'b': ++ backwards = 1; ++ break; + case 'l': + local = 1; + break; +@@ -105,6 +110,8 @@ + + ign_setup (); + ++ if (backwards) ++ send_arg ("-b"); + if (local) + send_arg ("-l"); + if (!force_tag_match) +@@ -280,7 +287,8 @@ + else + { + RCS_deltas (finfo->rcs, NULL, NULL, +- version, RCS_ANNOTATE, NULL, NULL, NULL, NULL); ++ version, backwards ? RCS_ANNOTATE_BACKWARDS : RCS_ANNOTATE, ++ NULL, NULL, NULL, NULL); + } + free (version); + return 0; +--- cvs-1.12.13+real.orig/src/buffer.c ++++ cvs-1.12.13+real/src/buffer.c +@@ -536,9 +536,10 @@ + void + buf_free_data (struct buffer *buffer) + { +- if (buf_empty_p (buffer)) return; ++ if (buffer->data) { + buf_free_datas (buffer->data, buffer->last); + buffer->data = buffer->last = NULL; ++ } + } + + +--- cvs-1.12.13+real.orig/src/client.c ++++ cvs-1.12.13+real/src/client.c +@@ -3510,6 +3510,17 @@ + sock = socket (AF_INET, SOCK_STREAM, 0); + if (sock == -1) + error (1, 0, "cannot create socket: %s", SOCK_STRERROR (SOCK_ERRNO)); ++ ++#ifdef TCP_NODELAY ++ /* Avoid latency due to Nagle algorithm. */ ++ { ++ int on = 1; ++ ++ if (setsockopt (sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof on) < 0) ++ error (0, errno, "warning: cannot set TCP_NODELAY on socket"); ++ } ++#endif ++ + port_number = get_cvs_port_number (root); + + /* if we have a proxy connect to that instead */ +@@ -3558,9 +3569,9 @@ + * code. + */ + read_line_via (from_server, to_server, &read_buf); +- sscanf (read_buf, "%s %d", write_buf, &codenum); ++ count = sscanf (read_buf, "%*s %d", &codenum); + +- if ((codenum / 100) != 2) ++ if (count != 1 || (codenum / 100) != 2) + error (1, 0, "proxy server %s:%d does not support http tunnelling", + root->proxy_hostname, proxy_port_number); + free (read_buf); +@@ -3901,8 +3912,12 @@ + case ext_method: + #ifdef NO_EXT_METHOD + error (0, 0, ":ext: method not supported by this port of CVS"); ++ if (0) ++ case extssh_method: ++ error (0, 0, ":extssh: method not supported by this port of CVS"); + error (1, 0, "try :server: instead"); + #else /* ! NO_EXT_METHOD */ ++ case extssh_method: + start_rsh_server (root, to_server_p, + from_server_p); + #endif /* NO_EXT_METHOD */ +@@ -4362,7 +4377,7 @@ + sprintf (tmp, "%lu\n", (unsigned long) newsize); + send_to_server (tmp, 0); + +- send_to_server (buf, newsize); ++ send_to_server ((const void *)buf, newsize); + } + } + else +@@ -4415,7 +4430,7 @@ + * one. + */ + if (newsize > 0) +- send_to_server (buf, newsize); ++ send_to_server ((const void *)buf, newsize); + } + free (buf); + free (mode_string); +--- cvs-1.12.13+real.orig/src/client.h ++++ cvs-1.12.13+real/src/client.h +@@ -213,6 +213,7 @@ + #if defined AUTH_CLIENT_SUPPORT || defined HAVE_KERBEROS || defined HAVE_GSSAPI + # include <sys/socket.h> + # include <netinet/in.h> ++# include <netinet/tcp.h> + # include <arpa/inet.h> + # include <netdb.h> + struct hostent *init_sockaddr (struct sockaddr_in *, char *, unsigned int); +--- cvs-1.12.13+real.orig/src/commit.c ++++ cvs-1.12.13+real/src/commit.c +@@ -613,31 +613,7 @@ + + send_to_server ("ci\012", 0); + err = get_responses_and_close (); +- if (err != 0 && use_editor && saved_message != NULL) +- { +- /* If there was an error, don't nuke the user's carefully +- constructed prose. This is something of a kludge; a better +- solution is probably more along the lines of #150 in TODO +- (doing a second up-to-date check before accepting the +- log message has also been suggested, but that seems kind of +- iffy because the real up-to-date check could still fail, +- another error could occur, &c. Also, a second check would +- slow things down). */ +- +- char *fname; +- FILE *fp; +- +- fp = cvs_temp_file (&fname); +- if (fp == NULL) +- error (1, 0, "cannot create temporary file %s", fname); +- if (fwrite (saved_message, 1, strlen (saved_message), fp) +- != strlen (saved_message)) +- error (1, errno, "cannot write temporary file %s", fname); +- if (fclose (fp) < 0) +- error (0, errno, "cannot close temporary file %s", fname); +- error (0, 0, "saving log message in %s", fname); +- free (fname); +- } ++ logmsg_cleanup(err); + return err; + } + #endif +@@ -702,6 +678,7 @@ + sleep_past (last_register_time); + } + ++ logmsg_cleanup(err); + return err; + } + +@@ -853,7 +830,7 @@ + case T_ADDED: + case T_REMOVED: + { +- char *editor; ++ char *editor = NULL; + + /* + * some quick sanity checks; if no numeric -r option specified: +@@ -1250,6 +1227,7 @@ + #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */ + filter, + "c", "s", cvs_cmd_name, ++ "I", "s", global_session_id, + #ifdef SERVER_SUPPORT + "R", "s", referrer ? referrer->original : "NONE", + #endif /* SERVER_SUPPORT */ +@@ -2255,9 +2233,10 @@ + this was added into the log message. */ + t = time (NULL); + ct = gmtime (&t); +- tmp = Xasprintf ("file %s was added on branch %s on %d-%02d-%02d %02d:%02d:%02d +0000", ++ tmp = Xasprintf ("file %s was added on branch %s on %ld-%02d-%02d %02d:%02d:%02d +0000", + file, tag, +- ct->tm_year + (ct->tm_year < 100 ? 0 : 1900), ++ (long)ct->tm_year ++ + (ct->tm_year < 100 ? 0 : 1900), + ct->tm_mon + 1, ct->tm_mday, + ct->tm_hour, ct->tm_min, ct->tm_sec); + +--- cvs-1.12.13+real.orig/src/cvs.h ++++ cvs-1.12.13+real/src/cvs.h +@@ -1,3 +1,5 @@ ++/* $MirOS: src/gnu/usr.bin/cvs/src/cvs.h,v 1.7 2016/10/21 16:41:16 tg Exp $ */ ++ + /* + * Copyright (C) 1986-2005 The Free Software Foundation, Inc. + * +@@ -365,6 +367,7 @@ + + extern const char *program_name, *program_path, *cvs_cmd_name; + extern char *Editor; ++extern char *LogMsgFile; + extern int cvsadmin_root; + extern char *CurDir; + extern int really_quiet, quiet; +@@ -504,6 +507,8 @@ + int unlink_file (const char *f); + int unlink_file_dir (const char *f); + ++int suck (int argc, char *argv[]); ++ + /* This is the structure that the recursion processor passes to the + fileproc to tell it about a particular file. */ + struct file_info +@@ -629,6 +634,7 @@ + FILE *xlogfp, List *xchanges); + void do_editor (const char *dir, char **messagep, + const char *repository, List *changes); ++void logmsg_cleanup (int err); + + void do_verify (char **messagep, const char *repository, List *changes); + +@@ -726,7 +732,7 @@ + /* This is the timestamp from stating the file in the working directory. + It is NULL if there is no file in the working directory. It is + "Is-modified" if we know the file is modified but don't have its +- contents. */ ++ contents. See also: ts_user_ists. */ + char *ts_user; + /* Timestamp from CVS/Entries. For the server, ts_user and ts_rcs + are computed in a slightly different way, but the fact remains that +@@ -759,6 +765,9 @@ + + /* Pointer to parsed src file info */ + RCSNode *srcfile; ++ ++ /* 1 if ts_user is known to be the actual timestamp of a local file */ ++ unsigned char ts_user_ists; + }; + typedef struct vers_ts Vers_TS; + +--- cvs-1.12.13+real.orig/src/cvsrc.c ++++ cvs-1.12.13+real/src/cvsrc.c +@@ -41,6 +41,7 @@ + size_t line_chars_allocated; + + char *optstart; ++ int white_len = 0; + + int command_len; + int found = 0; +@@ -96,9 +97,12 @@ + if (line[0] == '#') + continue; + ++ while (isspace(line[white_len])) ++ ++white_len; ++ + /* stop if we match the current command */ +- if (!strncmp (line, cmdname, command_len) +- && isspace ((unsigned char) *(line + command_len))) ++ if (!strncmp (line + white_len, cmdname, command_len) ++ && isspace ((unsigned char) *(line + white_len + command_len))) + { + found = 1; + break; +@@ -120,7 +124,7 @@ + if (found) + { + /* skip over command in the options line */ +- for (optstart = strtok (line + command_len, "\t \n"); ++ for (optstart = strtok (line + white_len + command_len, "\t \n"); + optstart; + optstart = strtok (NULL, "\t \n")) + { +--- cvs-1.12.13+real.orig/src/diff.c ++++ cvs-1.12.13+real/src/diff.c +@@ -21,6 +21,8 @@ + + #include "cvs.h" + ++#define TAG_BHEAD ".bhead" ++ + enum diff_file + { + DIFF_ERROR, +@@ -444,9 +446,9 @@ + } + #endif + +- if (diff_rev1 != NULL) ++ if (diff_rev1 != NULL && strcmp(diff_rev1, TAG_BHEAD)) + tag_check_valid (diff_rev1, argc, argv, local, 0, "", false); +- if (diff_rev2 != NULL) ++ if (diff_rev2 != NULL && strcmp(diff_rev2, TAG_BHEAD)) + tag_check_valid (diff_rev2, argc, argv, local, 0, "", false); + + which = W_LOCAL; +@@ -903,8 +905,14 @@ + + if (diff_rev1 || diff_date1) + { +- /* special handling for TAG_HEAD */ +- if (diff_rev1 && strcmp (diff_rev1, TAG_HEAD) == 0) ++ /* ++ * the special handling is broken, -rbranchname is the ++ * head (tip) of the branch already, -rHEAD is supposed ++ * to be the head (tip) of the MAIN branch (trunk); we ++ * introduce ".bhead" here, for now, but only here ++ */ ++ /* special handling for TAG_BHEAD */ ++ if (diff_rev1 && strcmp (diff_rev1, TAG_BHEAD) == 0) + { + if (vers->vn_rcs != NULL && vers->srcfile != NULL) + use_rev1 = RCS_branch_head (vers->srcfile, vers->vn_rcs); +@@ -919,8 +927,8 @@ + } + if (diff_rev2 || diff_date2) + { +- /* special handling for TAG_HEAD */ +- if (diff_rev2 && strcmp (diff_rev2, TAG_HEAD) == 0) ++ /* special handling for TAG_BHEAD */ ++ if (diff_rev2 && strcmp (diff_rev2, TAG_BHEAD) == 0) + { + if (vers->vn_rcs && vers->srcfile) + use_rev2 = RCS_branch_head (vers->srcfile, vers->vn_rcs); +--- cvs-1.12.13+real.orig/src/edit.c ++++ cvs-1.12.13+real/src/edit.c +@@ -828,6 +828,7 @@ + #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */ + filter, + "c", "s", cvs_cmd_name, ++ "I", "s", global_session_id, + #ifdef SERVER_SUPPORT + "R", "s", referrer ? referrer->original : "NONE", + #endif /* SERVER_SUPPORT */ +--- cvs-1.12.13+real.orig/src/error.c ++++ cvs-1.12.13+real/src/error.c +@@ -208,7 +208,7 @@ + * with the message here. + */ + #if HAVE_SYSLOG_H +- syslog (LOG_DAEMON | LOG_EMERG, "Memory exhausted. Aborting."); ++ syslog (LOG_DAEMON | LOG_CRIT, "Memory exhausted. Aborting."); + #endif /* HAVE_SYSLOG_H */ + + goto sidestep_done; +@@ -219,18 +219,18 @@ + * error while attempting to send the last error message to the client. + */ + +- syslog (LOG_DAEMON | LOG_EMERG, ++ syslog (LOG_DAEMON | LOG_ALERT, + "error (%d, %d) called recursively. Original message was:", + last_status, last_errnum); +- syslog (LOG_DAEMON | LOG_EMERG, "%s", last_message); ++ syslog (LOG_DAEMON | LOG_ALERT, "%s", last_message); + + +- syslog (LOG_DAEMON | LOG_EMERG, ++ syslog (LOG_DAEMON | LOG_ALERT, + "error (%d, %d) called recursively. Second message was:", + status, errnum); +- syslog (LOG_DAEMON | LOG_EMERG, "%s", buf2); ++ syslog (LOG_DAEMON | LOG_ALERT, "%s", buf2); + +- syslog (LOG_DAEMON | LOG_EMERG, "Aborting."); ++ syslog (LOG_DAEMON | LOG_ALERT, "Aborting."); + #endif /* HAVE_SYSLOG_H */ + + sidestep_done: +--- cvs-1.12.13+real.orig/src/fileattr.c ++++ cvs-1.12.13+real/src/fileattr.c +@@ -514,6 +514,7 @@ + TRACE (TRACE_FUNCTION, "postwatch_proc (%s, %s)", repository, filter); + + /* %c = command name ++ * %I = commit ID + * %p = shortrepos + * %r = repository + */ +@@ -528,6 +529,7 @@ + #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */ + filter, + "c", "s", cvs_cmd_name, ++ "I", "s", global_session_id, + #ifdef SERVER_SUPPORT + "R", "s", referrer ? referrer->original : "NONE", + #endif /* SERVER_SUPPORT */ +--- cvs-1.12.13+real.orig/src/history.c ++++ cvs-1.12.13+real/src/history.c +@@ -379,7 +379,7 @@ + static const char * + get_history_log_name (time_t now) + { +- char *log_name; ++ char *log_name = NULL; + + if (config->HistoryLogPath) + { +@@ -1561,7 +1561,7 @@ + tm = localtime (&(lr->date)); + + (void) printf ("%c %04d-%02d-%02d %02d:%02d %s %-*s", ty, +- tm->tm_year+1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, ++ (int)(tm->tm_year+1900), tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, + tm->tm_min, tz_name, user_len, lr->user); + + workdir = xmalloc (strlen (lr->dir) + strlen (lr->end) + 10); +--- cvs-1.12.13+real.orig/src/import.c ++++ cvs-1.12.13+real/src/import.c +@@ -238,6 +238,23 @@ + regfree (&pat); + } + ++ /* ++ * If you use even vendor branches, something evil[TM] can happen. ++ */ ++ { ++ regex_t pat; ++ assert (!regcomp (&pat, "^[1-9][0-9]*\\.[1-9][0-9]*\\.[0-9]*[13579]$", ++ REG_EXTENDED)); ++ if (regexec (&pat, vbranch, 0, NULL, 0)) ++ { ++ error (0, 0, ++ "warning: you are using an even vendor branch, which can\n" ++ "lead to problems: '%s'. Use an odd branch such as '1.1.3' instead.", ++ vbranch); ++ } ++ regfree (&pat); ++ } ++ + /* Set vhead to the branch's parent. */ + vhead = xstrdup (vbranch); + cp = strrchr (vhead, '.'); +@@ -311,6 +328,7 @@ + free (vhead); + send_to_server ("import\012", 0); + err += get_responses_and_close (); ++ logmsg_cleanup(err); + return err; + } + #endif +@@ -436,6 +454,7 @@ + free (vbranch); + free (vhead); + ++ logmsg_cleanup(err); + return err; + } + +@@ -595,7 +614,7 @@ + /* Attempt to make the Attic directory, in case it + does not exist. */ + (void) sprintf (rcs, "%s/%s", repository, CVSATTIC); +- if (CVS_MKDIR (rcs, 0777 ) != 0 && errno != EEXIST) ++ if (noexec == 0 && CVS_MKDIR (rcs, 0777 ) != 0 && errno != EEXIST) + error (1, errno, "cannot make directory `%s'", rcs); + + /* Note that the above clobbered the path name, so we +@@ -1253,7 +1272,7 @@ + (void) time (&now); + ftm = gmtime (&now); + (void) sprintf (altdate1, DATEFORM, +- ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900), ++ (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L), + ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour, + ftm->tm_min, ftm->tm_sec); + author = getcaller (); +--- cvs-1.12.13+real.orig/src/kerberos4-client.c ++++ cvs-1.12.13+real/src/kerberos4-client.c +@@ -17,6 +17,8 @@ + #include "buffer.h" + #include "socket-client.h" + ++#include <netinet/tcp.h> ++ + # include <krb.h> + + extern char *krb_realmofhost (); +@@ -48,6 +50,16 @@ + if (s < 0) + error (1, 0, "cannot create socket: %s", SOCK_STRERROR (SOCK_ERRNO)); + ++#ifdef TCP_NODELAY ++ /* Avoid latency due to Nagle algorithm. */ ++ { ++ int on = 1; ++ ++ if (setsockopt (sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof on) < 0) ++ error (0, errno, "warning: cannot set TCP_NODELAY on socket"); ++ } ++#endif ++ + port = get_cvs_port_number (root); + + hp = init_sockaddr (&sin, root->hostname, port); +--- cvs-1.12.13+real.orig/src/lock.c ++++ cvs-1.12.13+real/src/lock.c +@@ -1319,6 +1319,10 @@ + lock->repository = Xasprintf ("%s/%s", xrepository, CVSROOTADM); + lock->free_repository = true; + ++ /* do nothing if we know it fails anyway */ ++ if (readonlyfs) ++ return 0; ++ + /* get the lock dir for our own */ + if (set_lock (lock, 1) != L_OK) + { +--- cvs-1.12.13+real.orig/src/login.c ++++ cvs-1.12.13+real/src/login.c +@@ -200,11 +200,21 @@ + return NULL; + } + *p = ' '; +- tmp_root_canonical = normalize_cvsroot (tmp_root); +- if (strcmp (cvsroot_canonical, tmp_root_canonical) == 0) +- password = p + 1; +- +- free (tmp_root_canonical); ++ switch (tmp_root->method) ++ { ++ case gserver_method: ++ case pserver_method: ++#ifdef HAVE_KERBEROS ++ case kserver_method: ++#endif /* HAVE_KERBEROS */ ++ tmp_root_canonical = normalize_cvsroot (tmp_root); ++ if (strcmp (cvsroot_canonical, tmp_root_canonical) == 0) ++ password = p + 1; ++ free (tmp_root_canonical); ++ break; ++ default: ++ break; ++ } + } + + return password; +@@ -309,7 +319,9 @@ + fp = CVS_FOPEN (passfile, "r"); + if (fp == NULL) + { ++ if (errno != ENOENT) { + error (0, errno, "warning: failed to open %s for reading", passfile); ++ } + goto process; + } + +--- cvs-1.12.13+real.orig/src/logmsg.c ++++ cvs-1.12.13+real/src/logmsg.c +@@ -31,6 +31,8 @@ + static FILE *fp; + static Ctype type; + ++char *LogMsgFile = NULL; ++ + struct verifymsg_proc_data + { + /* The name of the temp file storing the log message to be verified. This +@@ -201,6 +203,7 @@ + char *fname; + struct stat pre_stbuf, post_stbuf; + int retcode = 0; ++ int finish = 0; + + assert (!current_parsed_root->isremote != !repository); + +@@ -224,6 +227,10 @@ + (*messagep)[strlen (*messagep) - 1] != '\n') + (void) fprintf (fp, "\n"); + } ++ else ++ (void) fputc ('\n', fp); ++ if (finish) ++ goto finish_off; + + if (repository != NULL) + /* tack templates on if necessary */ +@@ -267,6 +274,9 @@ + (void) fprintf (fp, + "%s----------------------------------------------------------------------\n", + CVSEDITPREFIX); ++ if (readonlyfs) ++ (void) fprintf (fp, "%sATTENTION: read-only mode selected!\n", ++ CVSEDITPREFIX); + (void) fprintf (fp, + "%sEnter Log. Lines beginning with `%.*s' are removed automatically\n%s\n", + CVSEDITPREFIX, CVSEDITPREFIXLEN, CVSEDITPREFIX, +@@ -280,28 +290,38 @@ + "%s----------------------------------------------------------------------\n", + CVSEDITPREFIX); + ++ finish_off: + /* finish off the temp file */ + if (fclose (fp) == EOF) + error (1, errno, "%s", fname); +- if (stat (fname, &pre_stbuf) == -1) ++ if (LogMsgFile) ++ { ++ if (unlink_file (LogMsgFile) < 0) ++ error (0, errno, "warning: cannot remove temp file %s", LogMsgFile); ++ free (LogMsgFile); ++ } ++ LogMsgFile = fname; ++ if (finish) ++ return; ++ if (stat (LogMsgFile, &pre_stbuf) == -1) + pre_stbuf.st_mtime = 0; + + /* run the editor */ + run_setup (Editor); +- run_add_arg (fname); ++ run_add_arg (LogMsgFile); + if ((retcode = run_exec (RUN_TTY, RUN_TTY, RUN_TTY, + RUN_NORMAL | RUN_SIGIGNORE)) != 0) + error (0, retcode == -1 ? errno : 0, "warning: editor session failed"); + + /* put the entire message back into the *messagep variable */ + +- fp = xfopen (fname, "r"); ++ fp = xfopen (LogMsgFile, "r"); + + if (*messagep) + free (*messagep); + +- if (stat (fname, &post_stbuf) != 0) +- error (1, errno, "cannot find size of temp file %s", fname); ++ if (stat (LogMsgFile, &post_stbuf) != 0) ++ error (1, errno, "cannot find size of temp file %s", LogMsgFile); + + if (post_stbuf.st_size == 0) + *messagep = NULL; +@@ -326,7 +346,7 @@ + if (line_length == -1) + { + if (ferror (fp)) +- error (0, errno, "warning: cannot read %s", fname); ++ error (0, errno, "warning: cannot read %s", LogMsgFile); + break; + } + if (strncmp (line, CVSEDITPREFIX, CVSEDITPREFIXLEN) == 0) +@@ -339,7 +359,7 @@ + } + } + if (fclose (fp) < 0) +- error (0, errno, "warning: cannot close %s", fname); ++ error (0, errno, "warning: cannot close %s", LogMsgFile); + + /* canonicalize emply messages */ + if (*messagep != NULL && +@@ -349,7 +369,11 @@ + *messagep = NULL; + } + +- if (pre_stbuf.st_mtime == post_stbuf.st_mtime || *messagep == NULL) ++ if (pre_stbuf.st_mtime == post_stbuf.st_mtime || ++ *messagep == NULL || ++ (*messagep)[0] == '\0' || ++ strcmp (*messagep, "\n") == 0 || ++ strcmp (*messagep, "\n\n") == 0) + { + for (;;) + { +@@ -361,9 +385,11 @@ + if (line_length < 0) + { + error (0, errno, "cannot read from stdin"); +- if (unlink_file (fname) < 0) ++ if (unlink_file (LogMsgFile) < 0) + error (0, errno, +- "warning: cannot remove temp file %s", fname); ++ "warning: cannot remove temp file %s", LogMsgFile); ++ free (LogMsgFile); ++ LogMsgFile = NULL; + error (1, 0, "aborting"); + } + else if (line_length == 0 +@@ -371,8 +397,10 @@ + break; + if (*line == 'a' || *line == 'A') + { +- if (unlink_file (fname) < 0) +- error (0, errno, "warning: cannot remove temp file %s", fname); ++ if (unlink_file (LogMsgFile) < 0) ++ error (0, errno, "warning: cannot remove temp file %s", LogMsgFile); ++ free (LogMsgFile); ++ LogMsgFile = NULL; + error (1, 0, "aborted by user"); + } + if (*line == 'e' || *line == 'E') +@@ -387,15 +415,14 @@ + } + if (line) + free (line); +- if (unlink_file (fname) < 0) +- error (0, errno, "warning: cannot remove temp file %s", fname); +- free (fname); ++ finish = 1; ++ goto again; + } + + /* Runs the user-defined verification script as part of the commit or import + process. This verification is meant to be run whether or not the user + included the -m attribute. unlike the do_editor function, this is +- independant of the running of an editor for getting a message. ++ independent of the running of an editor for getting a message. + */ + void + do_verify (char **messagep, const char *repository, List *changes) +@@ -785,6 +812,7 @@ + `%s' is left as an exercise for the reader. */ + + /* %c = cvs_cmd_name ++ * %I = commit ID + * %p = shortrepos + * %r = repository + * %{sVv} = file name, old revision (precommit), new revision (postcommit) +@@ -800,6 +828,7 @@ + #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */ + filter, + "c", "s", cvs_cmd_name, ++ "I", "s", global_session_id, + #ifdef SERVER_SUPPORT + "R", "s", referrer ? referrer->original : "NONE", + #endif /* SERVER_SUPPORT */ +@@ -922,6 +951,7 @@ + #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */ + script, + "c", "s", cvs_cmd_name, ++ "I", "s", global_session_id, + #ifdef SERVER_SUPPORT + "R", "s", referrer + ? referrer->original : "NONE", +@@ -975,3 +1005,20 @@ + return abs (run_exec (RUN_TTY, RUN_TTY, RUN_TTY, + RUN_NORMAL | RUN_SIGIGNORE)); + } ++ ++void ++logmsg_cleanup (int err) ++{ ++ if (!use_editor || LogMsgFile == NULL) ++ return; ++ ++ if (err == 0) ++ { ++ if (unlink_file (LogMsgFile) < 0) ++ error (0, errno, "warning: cannot remove temp file %s", LogMsgFile); ++ } ++ else ++ error (0, 0, "your log message was saved in %s", LogMsgFile); ++ free (LogMsgFile); ++ LogMsgFile = NULL; ++} +--- cvs-1.12.13+real.orig/src/main.c ++++ cvs-1.12.13+real/src/main.c +@@ -24,6 +24,10 @@ + #include "strftime.h" + #include "xgethostname.h" + ++#ifdef USE_LIBBSD ++uint32_t arc4random(void); ++#endif ++ + const char *program_name; + const char *program_path; + const char *cvs_cmd_name; +@@ -170,6 +174,7 @@ + #ifdef SERVER_SUPPORT + { "server", NULL, NULL, server, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, + #endif ++ { "suck", NULL, NULL, suck, 0 }, + { "status", "st", "stat", cvsstatus, CVS_CMD_USES_WORK_DIR }, + { "tag", "ta", "freeze", cvstag, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, + { "unedit", NULL, NULL, unedit, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR }, +@@ -230,7 +235,7 @@ + { + "CVS commands are:\n", + " add Add a new file/directory to the repository\n", +- " admin Administration front end for rcs\n", ++ " admin Administration front-end for RCS\n", + " annotate Show last revision where each line was modified\n", + " checkout Checkout sources for editing\n", + " commit Check files into the repository\n", +@@ -242,7 +247,7 @@ + " import Import sources into CVS, using vendor branches\n", + " init Create a CVS repository if it doesn't exist\n", + #if defined (HAVE_KERBEROS) && defined (SERVER_SUPPORT) +- " kserver Kerberos server mode\n", ++ " kserver Act in Kerberos server mode\n", + #endif + " log Print out history information for files\n", + #ifdef AUTH_CLIENT_SUPPORT +@@ -251,18 +256,19 @@ + #endif /* AUTH_CLIENT_SUPPORT */ + " ls List files available from CVS\n", + #if (defined(AUTH_SERVER_SUPPORT) || defined (HAVE_GSSAPI)) && defined(SERVER_SUPPORT) +- " pserver Password server mode\n", ++ " pserver Act in password server mode\n", + #endif + " rannotate Show last revision where each line of module was modified\n", +- " rdiff Create 'patch' format diffs between releases\n", +- " release Indicate that a Module is no longer in use\n", ++ " rdiff Create 'patch' format diffs between revisions\n", ++ " release Indicate that a work subdirectory is no longer in use\n", + " remove Remove an entry from the repository\n", + " rlog Print out history information for a module\n", + " rls List files in a module\n", + " rtag Add a symbolic tag to a module\n", + #ifdef SERVER_SUPPORT +- " server Server mode\n", ++ " server Act in server mode\n", + #endif ++ " suck Download RCS ,v file raw\n", + " status Display status information on checked out files\n", + " tag Add a symbolic tag to checked out version of files\n", + " unedit Undo an edit command\n", +@@ -283,6 +289,7 @@ + " -q Cause CVS to be somewhat quiet.\n", + " -r Make checked-out files read-only.\n", + " -w Make checked-out files read-write (default).\n", ++ " -g Force group-write permissions on checked-out files.\n", + " -n Do not execute anything that will change the disk.\n", + " -t Show trace of program execution (repeat for more\n", + " verbosity) -- try with -n.\n", +@@ -458,46 +465,6 @@ + + + +- +-enum {RANDOM_BYTES = 8}; +-enum {COMMITID_RAW_SIZE = (sizeof(time_t) + RANDOM_BYTES)}; +- +-static char const alphabet[62] = +- "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; +- +-/* Divide BUF by D, returning the remainder. Replace BUF by the +- quotient. BUF[0] is the most significant part of BUF. +- D must not exceed UINT_MAX >> CHAR_BIT. */ +-static unsigned int +-divide_by (unsigned char buf[COMMITID_RAW_SIZE], unsigned int d) +-{ +- unsigned int carry = 0; +- int i; +- for (i = 0; i < COMMITID_RAW_SIZE; i++) +- { +- unsigned int byte = buf[i]; +- unsigned int dividend = (carry << CHAR_BIT) + byte; +- buf[i] = dividend / d; +- carry = dividend % d; +- } +- return carry; +-} +- +-static void +-convert (char const input[COMMITID_RAW_SIZE], char *output) +-{ +- static char const zero[COMMITID_RAW_SIZE] = { 0, }; +- unsigned char buf[COMMITID_RAW_SIZE]; +- size_t o = 0; +- memcpy (buf, input, COMMITID_RAW_SIZE); +- while (memcmp (buf, zero, COMMITID_RAW_SIZE) != 0) +- output[o++] = alphabet[divide_by (buf, sizeof alphabet)]; +- if (! o) +- output[o++] = '0'; +- output[o] = '\0'; +-} +- +- + int + main (int argc, char **argv) + { +@@ -511,7 +478,7 @@ + int help = 0; /* Has the user asked for help? This + lets us support the `cvs -H cmd' + convention to give help for cmd. */ +- static const char short_options[] = "+QqrwtnRvb:T:e:d:Hfz:s:xa"; ++ static const char short_options[] = "+QqrwgtnRvb:T:e:d:Hfz:s:xal"; + static struct option long_options[] = + { + {"help", 0, NULL, 'H'}, +@@ -521,6 +488,7 @@ + {"help-options", 0, NULL, 4}, + #ifdef SERVER_SUPPORT + {"allow-root", required_argument, NULL, 3}, ++ {"allow-root-regexp", required_argument, NULL, 14}, + #endif /* SERVER_SUPPORT */ + {0, 0, 0, 0} + }; +@@ -645,6 +613,10 @@ + /* --allow-root */ + root_allow_add (optarg, gConfigPath); + break; ++ case 14: ++ /* --allow-root-regexp */ ++ root_allow_regexp_add (optarg, gConfigPath); ++ break; + #endif /* SERVER_SUPPORT */ + case 'Q': + really_quiet = 1; +@@ -658,6 +630,13 @@ + case 'w': + cvswrite = 1; + break; ++ case 'g': ++ /* ++ * Force full write permissions for the group. ++ * See the user's manual for details and dangers. ++ */ ++ umask(umask(S_IRWXG|S_IRWXO) & S_IRWXO); ++ break; + case 't': + trace++; + break; +@@ -669,6 +648,9 @@ + noexec = 1; + logoff = 1; + break; ++ case 'l': ++ /* no-op to simply ignore the old -l option */ ++ break; + case 'v': + (void) fputs ("\n", stdout); + version (0, NULL); +@@ -676,6 +658,7 @@ + (void) fputs ("\ + Copyright (C) 2005 Free Software Foundation, Inc.\n\ + \n\ ++Portions contributed by Thorsten Glaser for the MirOS Project and Debian.\n\ + Senior active maintainers include Larry Jones, Derek R. Price,\n\ + and Mark D. Baushke. Please see the AUTHORS and README files from the CVS\n\ + distribution kit for a complete list of contributors and copyrights.\n", +@@ -764,56 +747,12 @@ + if (argc < 1) + usage (usg); + +- if (readonlyfs && !really_quiet) { +- error (0, 0, +- "WARNING: Read-only repository access mode selected via `cvs -R'.\n\ +-Using this option to access a repository which some users write to may\n\ +-cause intermittent sandbox corruption."); +- } +- + /* Calculate the cvs global session ID */ + +- { +- char buf[COMMITID_RAW_SIZE] = { 0, }; +- char out[COMMITID_RAW_SIZE * 2]; +- ssize_t len = 0; +- time_t rightnow = time (NULL); +- char *startrand = buf + sizeof (time_t); +- unsigned char *p = (unsigned char *) startrand; +- size_t randbytes = RANDOM_BYTES; +- int flags = O_RDONLY; +- int fd; +-#ifdef O_NOCTTY +- flags |= O_NOCTTY; +-#endif +- if (rightnow != (time_t)-1) +- while (rightnow > 0) { +- *--p = rightnow % (UCHAR_MAX + 1); +- rightnow /= UCHAR_MAX + 1; +- } +- else { +- /* try to use more random data */ +- randbytes = COMMITID_RAW_SIZE; +- startrand = buf; +- } +- fd = open ("/dev/urandom", flags); +- if (fd >= 0) { +- len = read (fd, startrand, randbytes); +- close (fd); +- } +- if (len <= 0) { +- /* no random data was available so use pid */ +- long int pid = (long int)getpid (); +- p = (unsigned char *) (startrand + sizeof (pid)); +- while (pid > 0) { +- *--p = pid % (UCHAR_MAX + 1); +- pid /= UCHAR_MAX + 1; +- } +- } +- convert(buf, out); +- global_session_id = strdup (out); +- } +- ++ global_session_id = Xasprintf("1%010llX%04X%04X", ++ (unsigned long long)time(NULL), ++ (unsigned int)(getpid() & 0xFFFF), ++ (unsigned int)(arc4random() & 0xFFFF)); + + TRACE (TRACE_FUNCTION, "main: Session ID is %s", global_session_id); + +@@ -1011,7 +950,7 @@ + /* Now we've reconciled CVSROOT from the command line, the + CVS/Root file, and the environment variable. Do the + last sanity checks on the variable. */ +- if (!CVSroot_parsed) ++ if (!CVSroot_parsed && cm->func != version) + { + error (0, 0, + "No CVSROOT specified! Please use the `-d' option"); +@@ -1043,6 +982,11 @@ + + assert (current_parsed_root == NULL); + ++ /* Handle running 'cvs version' with no CVSROOT. */ ++ ++ if (cm->func == version && !CVSroot_parsed) ++ server_active = !0; ++ + /* If we're running the server, we want to execute this main + loop once and only once (we won't be serving multiple roots + from this connection, so there's no need to do it more than +@@ -1173,6 +1117,7 @@ + dellist (&root_directories); + } /* end of stuff that gets done if the user DOESN'T ask for help */ + ++ config = NULL; + root_allow_free (); + + /* This is exit rather than return because apparently that keeps +@@ -1244,7 +1189,7 @@ + if (*++p) + { + if (*date) free (*date); +- *date = Make_Date (p); ++ *date = strcmp (p, "BASE") ? Make_Date (p) : xstrdup (p); + } + } + else if (strlen (input)) +@@ -1285,7 +1230,7 @@ + ftm = localtime (&unixtime); + + (void) sprintf (date, DATEFORM, +- ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900), ++ (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L), + ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour, + ftm->tm_min, ftm->tm_sec); + ret = xstrdup (date); +@@ -1315,8 +1260,10 @@ + void + date_to_tm (struct tm *dest, const char *source) + { ++ int y; ++ + if (sscanf (source, SDATEFORM, +- &dest->tm_year, &dest->tm_mon, &dest->tm_mday, ++ &y, &dest->tm_mon, &dest->tm_mday, + &dest->tm_hour, &dest->tm_min, &dest->tm_sec) + != 6) + /* Is there a better way to handle errors here? I made this +@@ -1324,9 +1271,7 @@ + deal with fatal errors. */ + error (0, 0, "internal error: bad date %s", source); + +- if (dest->tm_year > 100) +- dest->tm_year -= 1900; +- ++ dest->tm_year = y - ((y > 100) ? 1900 : 0); + dest->tm_mon -= 1; + } + +@@ -1348,10 +1293,10 @@ + {"Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; + +- sprintf (dest, "%d %s %d %02d:%02d:%02d -0000", source->tm_mday, ++ sprintf (dest, "%d %s %ld %02d:%02d:%02d -0000", source->tm_mday, + source->tm_mon < 0 || source->tm_mon > 11 + ? "???" : month_names[source->tm_mon], +- source->tm_year + 1900, source->tm_hour, source->tm_min, ++ (long)source->tm_year + 1900, source->tm_hour, source->tm_min, + source->tm_sec); + } + +@@ -1458,7 +1403,7 @@ + { + (void) fprintf (stderr, *cpp++, program_name, cvs_cmd_name); + for (; *cpp; cpp++) +- (void) fprintf (stderr, *cpp); ++ (void) fprintf (stderr, "%s", *cpp); + exit (EXIT_FAILURE); + } + +--- cvs-1.12.13+real.orig/src/mkmodules.c ++++ cvs-1.12.13+real/src/mkmodules.c +@@ -68,6 +68,7 @@ + "# If any format strings are present in the filter, they will be replaced\n", + "# as follows:\n", + "# %c = canonical name of the command being executed\n", ++ "# %I = unique (randomly generated) commit ID\n", + #ifdef PROXY_SUPPORT + "# %R = the name of the referrer, if any, otherwise the value NONE\n", + #endif +@@ -82,7 +83,7 @@ + "# Thus %{sv} is a legal format string, but will only be replaced with\n", + "# file name and new revision.\n", + "# It also generates multiple arguments for each file being operated upon.\n", +- "# That is, if two files, file1 & file2, are being commited from 1.1 to\n", ++ "# That is, if two files, file1 & file2, are being committed from 1.1 to\n", + "# version 1.1.2.1 and from 1.1.2.2 to 1.1.2.3, respectively, %{sVv} will\n", + "# generate the following six arguments in this order:\n", + "# file1, 1.1, 1.1.2.1, file2, 1.1.2.2, 1.1.2.3.\n", +@@ -124,13 +125,14 @@ + "#\n", + "# Making sure that the entered bug-id number is correct.\n", + "# Validating that the code that was reviewed is indeed the code being\n", +- "# checked in (using the bug-id number or a seperate review\n", ++ "# checked in (using the bug-id number or a separate review\n", + "# number to identify this particular code set.).\n", + "#\n", + "# If any of the above test failed, then the commit would be aborted.\n", + "#\n", + "# Format strings present in the filter will be replaced as follows:\n", + "# %c = canonical name of the command being executed\n", ++ "# %I = unique (randomly generated) commit ID\n", + #ifdef PROXY_SUPPORT + "# %R = the name of the referrer, if any, otherwise the value NONE\n", + #endif +@@ -152,8 +154,8 @@ + + static const char *const commitinfo_contents[] = { + "# The \"commitinfo\" file is used to control pre-commit checks.\n", +- "# The filter on the right is invoked with the repository and a list \n", +- "# of files to check. A non-zero exit of the filter program will \n", ++ "# The filter on the right is invoked with the repository and a list\n", ++ "# of files to check. A non-zero exit of the filter program will\n", + "# cause the commit to be aborted.\n", + "#\n", + "# The first entry on a line is a regular expression which is tested\n", +@@ -163,6 +165,7 @@ + "#\n", + "# Format strings present in the filter will be replaced as follows:\n", + "# %c = canonical name of the command being executed\n", ++ "# %I = unique (randomly generated) commit ID\n", + #ifdef PROXY_SUPPORT + "# %R = the name of the referrer, if any, otherwise the value NONE\n", + #endif +@@ -199,6 +202,7 @@ + "# | \"N\" (not branch)\n", + "# %o = operation = \"add\" | \"mov\" | \"del\"\n", + "# %c = canonical name of the command being executed\n", ++ "# %I = unique (randomly generated) commit ID\n", + #ifdef PROXY_SUPPORT + "# %R = the name of the referrer, if any, otherwise the value NONE\n", + #endif +@@ -245,6 +249,7 @@ + "# If any format strings are present in the filter, they will be replaced\n", + "# as follows:\n", + "# %c = canonical name of the command being executed\n", ++ "# %I = unique (randomly generated) commit ID\n", + #ifdef PROXY_SUPPORT + "# %R = the name of the referrer, if any, otherwise the value NONE\n", + #endif +@@ -271,6 +276,7 @@ + "# If any format strings are present in the filter, they will be replaced\n", + "# as follows:\n", + "# %c = canonical name of the command being executed\n", ++ "# %I = unique (randomly generated) commit ID\n", + #ifdef PROXY_SUPPORT + "# %R = the name of the referrer, if any, otherwise the value NONE\n", + #endif +@@ -299,6 +305,7 @@ + "# If any format strings are present in the filter, they will be replaced\n", + "# as follows:\n", + "# %c = canonical name of the command being executed\n", ++ "# %I = unique (randomly generated) commit ID\n", + #ifdef PROXY_SUPPORT + "# %R = the name of the referrer, if any, otherwise the value NONE\n", + #endif +@@ -328,6 +335,7 @@ + "# | \"N\" (not branch)\n", + "# %o = operation = \"add\" | \"mov\" | \"del\"\n", + "# %c = canonical name of the command being executed\n", ++ "# %I = unique (randomly generated) commit ID\n", + #ifdef PROXY_SUPPORT + "# %R = the name of the referrer, if any, otherwise the value NONE\n", + #endif +@@ -363,11 +371,12 @@ + + static const char *const postwatch_contents[] = { + "# The \"postwatch\" file is called after any command finishes writing new\n", +- "# file attibute (watch/edit) information in a directory.\n", ++ "# file attribute (watch/edit) information in a directory.\n", + "#\n", + "# If any format strings are present in the filter, they will be replaced\n", + "# as follows:\n", + "# %c = canonical name of the command being executed\n", ++ "# %I = unique (randomly generated) commit ID\n", + #ifdef PROXY_SUPPORT + "# %R = the name of the referrer, if any, otherwise the value NONE\n", + #endif +@@ -446,6 +455,7 @@ + "#\n", + "# format strings are replaceed as follows:\n", + "# %c = canonical name of the command being executed\n", ++ "# %I = unique (randomly generated) commit ID\n", + #ifdef PROXY_SUPPORT + "# %R = the name of the referrer, if any, otherwise the value NONE\n", + #endif +@@ -465,11 +475,10 @@ + "# key [options] directory files...\n", + "#\n", + "# Where \"options\" are composed of:\n", +- "# -i prog Run \"prog\" on \"cvs commit\" from top-level of module.\n", + "# -o prog Run \"prog\" on \"cvs checkout\" of module.\n", + "# -e prog Run \"prog\" on \"cvs export\" of module.\n", ++ "# -s status Assign a status to the module.\n", + "# -t prog Run \"prog\" on \"cvs rtag\" of module.\n", +- "# -u prog Run \"prog\" on \"cvs update\" of module.\n", + "# -d dir Place module in directory \"dir\" instead of module name.\n", + "# -l Top-level directory only -- do not recurse.\n", + "#\n", +@@ -489,67 +498,68 @@ + }; + + static const char *const config_contents[] = { +- "# Set `SystemAuth' to `no' if pserver shouldn't check system users/passwords.\n", ++ "# Set 'SystemAuth' to 'no' if pserver shouldn't check system users/passwords.\n", + "#SystemAuth=no\n", + "\n", +- "# Set `LocalKeyword' to specify a local alias for a standard keyword.\n", ++ "# Set 'LocalKeyword' to specify a local alias for a standard keyword.\n", + "#LocalKeyword=MYCVS=CVSHeader\n", + "\n", +- "# Set `KeywordExpand' to `i' followed by a list of keywords to expand or\n", +- "# `e' followed by a list of keywords to not expand.\n" +- "#KeywordExpand=iMYCVS,Name,Date\n", ++ "# Set 'KeywordExpand' to 'i' followed by a list of keywords to expand or\n", ++ "# 'e' followed by a list of keywords to not expand.\n" ++ "#KeywordExpand=iMYCVS,Name,Date,Mdocdate\n", + "#KeywordExpand=eCVSHeader\n", + "\n", + #ifdef PRESERVE_PERMISSIONS_SUPPORT +- "# Set `PreservePermissions' to `yes' to save file status information\n", ++ "# Set 'PreservePermissions' to 'yes' to save file status information\n", + "# in the repository.\n", + "#PreservePermissions=no\n", + "\n", + #endif +- "# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top\n", +- "# level of the new working directory when using the `cvs checkout'\n", ++ "# Set 'TopLevelAdmin' to 'yes' to create a CVS directory at the top\n", ++ "# level of the new working directory when using the 'cvs checkout'\n", + "# command.\n", + "#TopLevelAdmin=no\n", + "\n", + "# Put CVS lock files in this directory rather than directly in the repository.\n", + "#LockDir=/var/lock/cvs\n", + "\n", +- "# Set `LogHistory' to `all' or `" ALL_HISTORY_REC_TYPES "' to log all transactions to the\n", +- "# history file, or a subset as needed (ie `TMAR' logs all write operations)\n", ++ "# Set 'LogHistory' to 'all' or '" ALL_HISTORY_REC_TYPES "' to log all transactions to the\n", ++ "# history file, or a subset as needed (ie 'TMAR' logs all write operations)\n", + "#LogHistory=" ALL_HISTORY_REC_TYPES "\n", ++ "LogHistory=TMAR\n", + "\n", +- "# Set `RereadLogAfterVerify' to `always' (the default) to allow the verifymsg\n", +- "# script to change the log message. Set it to `stat' to force CVS to verify\n", ++ "# Set 'RereadLogAfterVerify' to 'always' (the default) to allow the verifymsg\n", ++ "# script to change the log message. Set it to 'stat' to force CVS to verify\n", + "# that the file has changed before reading it (this can take up to an extra\n", + "# second per directory being committed, so it is not recommended for large\n", +- "# repositories. Set it to `never' (the previous CVS behavior) to prevent\n", ++ "# repositories. Set it to 'never' (the previous CVS behavior) to prevent\n", + "# verifymsg scripts from changing the log message.\n", + "#RereadLogAfterVerify=always\n", + "\n", +- "# Set `UserAdminOptions' to the list of `cvs admin' commands (options)\n", +- "# that users not in the `cvsadmin' group are allowed to run. This\n", +- "# defaults to `k', or only allowing the changing of the default\n", +- "# keyword expansion mode for files for users not in the `cvsadmin' group.\n", +- "# This value is ignored if the `cvsadmin' group does not exist.\n", ++ "# Set 'UserAdminOptions' to the list of 'cvs admin' commands (options)\n", ++ "# that users not in the '_cvsadmin' group are allowed to run. This\n", ++ "# defaults to 'k', or only allowing the changing of the default\n", ++ "# keyword expansion mode for files for users not in the '_cvsadmin' group.\n", ++ "# This value is ignored if the '_cvsadmin' group does not exist.\n", + "#\n", +- "# The following string would enable all `cvs admin' commands for all\n", ++ "# The following string would enable all 'cvs admin' commands for all\n", + "# users:\n", + "#UserAdminOptions=aAbceIklLmnNostuU\n", + #ifdef SUPPORT_OLD_INFO_FMT_STRINGS + "\n", +- "# Set `UseNewInfoFmtStrings' to `no' if you must support a legacy system by\n", ++ "# Set 'UseNewInfoFmtStrings' to 'no' if you must support a legacy system by\n", + "# enabling the deprecated old style info file command line format strings.\n", + "# Be warned that these strings could be disabled in any new version of CVS.\n", + "UseNewInfoFmtStrings=yes\n", + #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */ + "\n", +- "# Set `ImportNewFilesToVendorBranchOnly' to `yes' if you wish to force\n", +- "# every `cvs import' command to behave as if the `-X' flag was\n", ++ "# Set 'ImportNewFilesToVendorBranchOnly' to 'yes' if you wish to force\n", ++ "# every 'cvs import' command to behave as if the '-X' flag was\n", + "# specified.\n", + "#ImportNewFilesToVendorBranchOnly=no\n", + #ifdef PROXY_SUPPORT + "\n", +- "# Set `PrimaryServer' to the CVSROOT to the primary, or write, server when\n", ++ "# Set 'PrimaryServer' to the CVSROOT to the primary, or write, server when\n", + "# establishing one or more read-only mirrors which serve as proxies for\n", + "# the write server in write mode or redirect the client to the primary for\n", + "# write requests.\n", +@@ -558,13 +568,13 @@ + "#\n", + "# PrimaryServer=:fork:localhost/cvsroot\n", + "\n", +- "# Set `MaxProxyBufferSize' to the the maximum allowable secondary\n", ++ "# Set 'MaxProxyBufferSize' to the the maximum allowable secondary\n", + "# buffer memory cache size before the buffer begins being stored to disk, in\n", +- "# bytes. Must be a positive integer but may end in `k', `M', `G', or `T' (for\n", +- "# kiilo, mega, giga, & tera, respectively). If an otherwise valid number you\n", ++ "# bytes. Must be a positive integer but may end in 'K', 'M', 'G', or 'T' (for\n", ++ "# Kibi, Mebi, Gibi, & Tebi, respectively). If an otherwise valid number you\n", + "# specify is greater than the SIZE_MAX defined by your system's C compiler,\n", + "# then it will be resolved to SIZE_MAX without a warning. Defaults to 8M (8\n", +- "# megabytes).\n", ++ "# Mebibytes). The 'i' from 'Ki', 'Mi', etc. is omitted.\n", + "#\n", + "# High values for MaxProxyBufferSize may speed up a secondary server\n", + "# with old hardware and a lot of available memory but can actually slow a\n", +@@ -575,23 +585,23 @@ + "# MaxProxyBufferSize=1G\n", + #endif /* PROXY_SUPPORT */ + "\n", +- "# Set `MaxCommentLeaderLength' to the maximum length permitted for the\n", ++ "# Set 'MaxCommentLeaderLength' to the maximum length permitted for the\n", + "# automagically determined comment leader used when expanding the Log\n", + "# keyword, in bytes. CVS's behavior when the automagically determined\n", +- "# comment leader exceeds this length is dependant on the value of\n", +- "# `UseArchiveCommentLeader' set in this file. `unlimited' is a valid\n", ++ "# comment leader exceeds this length is dependent on the value of\n", ++ "# 'UseArchiveCommentLeader' set in this file. 'unlimited' is a valid\n", + "# setting for this value. Defaults to 20 bytes.\n", + "#\n", + "# For example:\n", + "#\n", + "# MaxCommentLeaderLength=20\n", + "\n", +- "# Set `UseArchiveCommentLeader' to `yes' to cause CVS to fall back on\n", ++ "# Set 'UseArchiveCommentLeader' to 'yes' to cause CVS to fall back on\n", + "# the comment leader set in the RCS archive file, if any, when the\n", +- "# automagically determined comment leader exceeds `MaxCommentLeaderLength'\n", +- "# bytes. If `UseArchiveCommentLeader' is not set and a comment leader\n", +- "# greater than `MaxCommentLeaderLength' is calculated, the Log keyword\n", +- "# being examined will not be expanded. Defaults to `no'.\n", ++ "# automagically determined comment leader exceeds 'MaxCommentLeaderLength'\n", ++ "# bytes. If 'UseArchiveCommentLeader' is not set and a comment leader\n", ++ "# greater than 'MaxCommentLeaderLength' is calculated, the Log keyword\n", ++ "# being examined will not be expanded. Defaults to 'no'.\n", + "#\n", + "# For example:\n", + "#\n", +@@ -816,7 +826,7 @@ + } + + if (restore_cwd (&cwd)) +- error (1, errno, "Failed to restore current directory, `%s'.", ++ error (1, errno, "Failed to restore current directory, '%s'.", + cwd.name); + free_cwd (&cwd); + +@@ -878,7 +888,7 @@ + { + /* Probably not necessary (?); RCS_parsercsfile already printed a + message. */ +- error (0, 0, "Failed to parse `%s'.", rcs); ++ error (0, 0, "Failed to parse '%s'.", rcs); + free (rcs); + return 1; + } +@@ -962,20 +972,22 @@ + key.dptr = vp; + while (*vp && !isspace ((unsigned char) *vp)) + vp++; +- key.dsize = vp - key.dptr; ++ key.dsize = vp - (char *)key.dptr; + *vp++ = '\0'; /* NULL terminate the key */ + while (*vp && isspace ((unsigned char) *vp)) + vp++; /* skip whitespace to value */ + if (*vp == '\0') + { +- error (0, 0, "warning: NULL value for key `%s'", key.dptr); ++ error (0, 0, "warning: NULL value for key '%s'", ++ (char *)key.dptr); + continue; + } + val.dptr = vp; + val.dsize = strlen (vp); + if (dbm_store (db, key, val, DBM_INSERT) == 1) + { +- error (0, 0, "duplicate key found for `%s'", key.dptr); ++ error (0, 0, "duplicate key found for '%s'", ++ (char *)key.dptr); + err++; + } + } +@@ -1175,6 +1187,9 @@ + which needs to be created. */ + mkdir_if_needed (current_parsed_root->directory); + ++ if (noexec) ++ return (0); ++ + adm = Xasprintf ("%s/%s", current_parsed_root->directory, CVSROOTADM); + mkdir_if_needed (adm); + +@@ -1249,11 +1264,6 @@ + fp = xfopen (info, "w"); + if (fclose (fp) < 0) + error (1, errno, "cannot close %s", info); +- +- /* Make the new history file world-writeable, since every CVS +- user will need to be able to write to it. We use chmod() +- because xchmod() is too shy. */ +- chmod (info, 0666); + } + + /* Make an empty val-tags file to prevent problems creating it later. */ +@@ -1267,11 +1277,6 @@ + fp = xfopen (info, "w"); + if (fclose (fp) < 0) + error (1, errno, "cannot close %s", info); +- +- /* Make the new val-tags file world-writeable, since every CVS +- user will need to be able to write to it. We use chmod() +- because xchmod() is too shy. */ +- chmod (info, 0666); + } + + free (info); +--- cvs-1.12.13+real.orig/src/modules.c ++++ cvs-1.12.13+real/src/modules.c +@@ -450,7 +450,7 @@ + case '?': + error (0, 0, + "modules file has invalid option for key %s value %s", +- key.dptr, value); ++ (char *)key.dptr, value); + err++; + goto do_module_return; + } +--- cvs-1.12.13+real.orig/src/parseinfo.c ++++ cvs-1.12.13+real/src/parseinfo.c +@@ -230,7 +230,7 @@ + return true; + } + +- /* Record the factor character (kilo, mega, giga, tera). */ ++ /* Record the factor character (kibi, mebi, gibi, tebi). */ + if (!isdigit (p[strlen(p) - 1])) + { + switch (p[strlen(p) - 1]) +@@ -241,16 +241,16 @@ + factor = xtimes (factor, 1024); + case 'M': + factor = xtimes (factor, 1024); +- case 'k': ++ case 'K': + factor = xtimes (factor, 1024); + break; + default: + error (0, 0, + "%s: Unknown %s factor: `%c'", +- infopath, option, p[strlen(p)]); ++ infopath, option, p[strlen(p) - 1]); + return false; + } +- TRACE (TRACE_DATA, "readSizeT(): Found factor %u for %s", ++ TRACE (TRACE_DATA, "readSizeT(): Found factor %zu for %s", + factor, option); + } + +@@ -274,9 +274,9 @@ + /* Don't return an error, just max out. */ + num = SIZE_MAX; + +- TRACE (TRACE_DATA, "readSizeT(): read number %u for %s", num, option); ++ TRACE (TRACE_DATA, "readSizeT(): read number %zu for %s", num, option); + *val = xtimes (strtoul (p, NULL, 10), factor); +- TRACE (TRACE_DATA, "readSizeT(): returnning %u for %s", *val, option); ++ TRACE (TRACE_DATA, "readSizeT(): returnning %zu for %s", *val, option); + return true; + } + +@@ -298,7 +298,7 @@ + new->MaxCompressionLevel = 9; + #endif /* SERVER_SUPPORT */ + #ifdef PROXY_SUPPORT +- new->MaxProxyBufferSize = (size_t)(8 * 1024 * 1024); /* 8 megabytes, ++ new->MaxProxyBufferSize = (size_t)(8 * 1024 * 1024); /* 8 mebibytes, + * by default. + */ + #endif /* PROXY_SUPPORT */ +@@ -392,6 +392,9 @@ + */ + bool processing = true; + bool processed = true; ++#ifdef SERVER_SUPPORT ++ size_t dummy_sizet; ++#endif + + TRACE (TRACE_FUNCTION, "parse_config (%s)", cvsroot); + +@@ -689,13 +692,44 @@ + readBool (infopath, "UseArchiveCommentLeader", p, + &retval->UseArchiveCommentLeader); + #ifdef SERVER_SUPPORT +- else if (!strcmp (line, "MinCompressionLevel")) +- readSizeT (infopath, "MinCompressionLevel", p, +- &retval->MinCompressionLevel); +- else if (!strcmp (line, "MaxCompressionLevel")) +- readSizeT (infopath, "MaxCompressionLevel", p, +- &retval->MaxCompressionLevel); ++ else if (!strcmp (line, "MinCompressionLevel")) { ++ readSizeT (infopath, "MinCompressionLevel", p, &dummy_sizet); ++ retval->MinCompressionLevel = dummy_sizet; ++ } ++ else if (!strcmp (line, "MaxCompressionLevel")) { ++ readSizeT (infopath, "MaxCompressionLevel", p, &dummy_sizet); ++ retval->MaxCompressionLevel = dummy_sizet; ++ } + #endif /* SERVER_SUPPORT */ ++ else if (!strcmp (line, "tag")) { ++ char *pp; ++ ++ pp = Xasprintf("%s=Id", p); ++ RCS_setlocalid (infopath, ln, &retval->keywords, pp); ++ free(pp); ++ ++#if !defined(LOCK_COMPATIBILITY) || !defined(SUPPORT_OLD_INFO_FMT_STRINGS) ++ error (0, 0, "%s: found keyword '%s' in repository", ++ infopath, line); ++ error (readonlyfs ? 0 : 1, 0, readonlyfs ++ ? "Danger: Granting read access to incompatible repository!" ++ : "Do not try to access a cvs 1.11 repository!"); ++#endif ++ } ++#if !defined(LOCK_COMPATIBILITY) || !defined(SUPPORT_OLD_INFO_FMT_STRINGS) ++ else if ((!strcmp (line, "umask")) ++ || (!strcmp (line, "DisableXProg")) || (!strcmp (line, "dlimit")) ++ || (!strcmp (line, "forceReadOnlyFS"))) { ++ /* We are dealing with keywords removed between cvs 1.11.1p1 ++ and cvs 1.12.10; odds are we are not being able to handle ++ access or concurrent access with 1.11 cvs correctly */ ++ error (0, 0, "%s: found keyword '%s' in repository", ++ infopath, line); ++ error (readonlyfs ? 0 : 1, 0, readonlyfs ++ ? "Danger: Granting read access to incompatible repository!" ++ : "Do not try to access a cvs 1.11 repository!"); ++ } ++#endif + else + /* We may be dealing with a keyword which was added in a + subsequent version of CVS. In that case it is a good idea +--- cvs-1.12.13+real.orig/src/parseinfo.h ++++ cvs-1.12.13+real/src/parseinfo.h +@@ -1,3 +1,5 @@ ++/* $MirOS: src/gnu/usr.bin/cvs/src/parseinfo.h,v 1.4 2010/09/19 19:43:07 tg Exp $ */ ++ + /* + * Copyright (c) 2004 Derek Price, Ximbiot <http://ximbiot.com>, + * and the Free Software Foundation +@@ -53,8 +55,8 @@ + size_t MaxProxyBufferSize; + #endif /* PROXY_SUPPORT */ + #ifdef SERVER_SUPPORT +- size_t MinCompressionLevel; +- size_t MaxCompressionLevel; ++ unsigned MinCompressionLevel; ++ unsigned MaxCompressionLevel; + #endif /* SERVER_SUPPORT */ + #ifdef PRESERVE_PERMISSIONS_SUPPORT + bool preserve_perms; +--- cvs-1.12.13+real.orig/src/patch.c ++++ cvs-1.12.13+real/src/patch.c +@@ -46,13 +46,13 @@ + + static const char *const patch_usage[] = + { +- "Usage: %s %s [-flR] [-c|-u] [-s|-t] [-V %%d] [-k kopt]\n", ++ "Usage: %s %s [-flR] [-c|-u[p]] [-s|-t] [-V %%d] [-k kopt]\n", + " -r rev|-D date [-r rev2 | -D date2] modules...\n", + "\t-f\tForce a head revision match if tag/date not found.\n", + "\t-l\tLocal directory only, not recursive\n", + "\t-R\tProcess directories recursively.\n", + "\t-c\tContext diffs (default)\n", +- "\t-u\tUnidiff format.\n", ++ "\t-u\tUnidiff format (-p works the same as in diff).\n", + "\t-s\tShort patch - one liner per file.\n", + "\t-t\tTop two diffs - last change made to the file.\n", + "\t-V vers\tUse RCS Version \"vers\" for keyword expansion.\n", +@@ -78,7 +78,7 @@ + usage (patch_usage); + + optind = 0; +- while ((c = getopt (argc, argv, "+V:k:cuftsQqlRD:r:")) != -1) ++ while ((c = getopt (argc, argv, "+V:k:cupftsQqlRD:r:")) != -1) + { + switch (c) + { +@@ -149,10 +149,13 @@ + "the -V option is obsolete and should not be used"); + break; + case 'u': +- unidiff = 1; /* Unidiff */ ++ unidiff |= 1; /* Unidiff */ + break; + case 'c': /* Context diff */ +- unidiff = 0; ++ unidiff &= ~1; ++ break; ++ case 'p': ++ unidiff |= 2; /* Unidiff context */ + break; + case '?': + default: +@@ -167,6 +170,8 @@ + if (argc < 1) + usage (patch_usage); + ++ if (!(unidiff & 1)) ++ unidiff = 0; + if (toptwo_diffs && patch_short) + error (1, 0, "-t and -s options are mutually exclusive"); + if (toptwo_diffs && (date1 != NULL || date2 != NULL || +@@ -202,6 +207,8 @@ + send_arg("-s"); + if (unidiff) + send_arg("-u"); ++ if (unidiff & 2) ++ send_arg("-p"); + + if (rev1) + option_with_arg ("-r", rev1); +@@ -270,6 +277,7 @@ + int which; + char *repository; + char *where; ++ char *cp; + + TRACE ( TRACE_FUNCTION, "patch_proc ( %s, %s, %s, %d, %d, %s, %s )", + xwhere ? xwhere : "(null)", +@@ -292,7 +300,6 @@ + /* if mfile isn't null, we need to set up to do only part of the module */ + if (mfile != NULL) + { +- char *cp; + char *path; + + /* if the portion of the module is a path, put the dir part on repos */ +@@ -342,14 +349,30 @@ + + if (rev1 != NULL && !rev1_validated) + { +- tag_check_valid (rev1, argc - 1, argv + 1, local_specified, 0, +- repository, false); ++ if ((cp = strchr(rev1, ':')) != NULL) ++ { ++ *cp++ = '\0'; ++ date1 = Make_Date (cp); ++ if (*rev1 == '\0') ++ rev1 = NULL; ++ } ++ if (rev1) ++ tag_check_valid (rev1, argc - 1, argv + 1, local_specified, 0, ++ repository, false); + rev1_validated = 1; + } + if (rev2 != NULL && !rev2_validated) + { +- tag_check_valid (rev2, argc - 1, argv + 1, local_specified, 0, +- repository, false); ++ if ((cp = strchr(rev2, ':')) != NULL) ++ { ++ *cp++ = '\0'; ++ date2 = Make_Date (cp); ++ if (*rev2 == '\0') ++ rev2 = NULL; ++ } ++ if (rev2) ++ tag_check_valid (rev2, argc - 1, argv + 1, local_specified, 0, ++ repository, false); + rev2_validated = 1; + } + +@@ -571,6 +594,7 @@ + + if (unidiff) run_add_arg_p (&dargc, &darg_allocated, &dargv, "-u"); + else run_add_arg_p (&dargc, &darg_allocated, &dargv, "-c"); ++ if (unidiff & 2) run_add_arg_p (&dargc, &darg_allocated, &dargv, "-p"); + switch (diff_exec (tmpfile1, tmpfile2, NULL, NULL, dargc, dargv, + tmpfile3)) + { +@@ -671,7 +695,10 @@ + program. */ + if (unidiff) + { +- cvs_output ("diff -u ", 0); ++ if (unidiff & 2) ++ cvs_output ("diff -up ", 0); ++ else ++ cvs_output ("diff -u ", 0); + cvs_output (file1, 0); + cvs_output (" ", 1); + cvs_output (file2, 0); +--- cvs-1.12.13+real.orig/src/rcs.c ++++ cvs-1.12.13+real/src/rcs.c +@@ -103,6 +103,7 @@ + static char *truncate_revnum_in_place (char *); + static char *truncate_revnum (const char *); + static char *printable_date (const char *); ++static char *mdoc_date (const char *); + static char *escape_keyword_value (const char *, int *); + static void expand_keywords (RCSNode *, RCSVers *, const char *, + const char *, size_t, enum kflag, char *, +@@ -2166,6 +2167,8 @@ + + if (! RCS_nodeisbranch (rcs, tag)) + { ++ if (! strcmp (date, "BASE")) ++ return RCS_gettag (rcs, tag, force_tag_match, simple_tag); + /* We can't get a particular date if the tag is not a + branch. */ + return NULL; +@@ -2177,6 +2180,15 @@ + else + branch = xstrdup (tag); + ++ if (! strcmp (date, "BASE")) ++ { ++ /* Cut off the branch suffix and return. */ ++ rev = strrchr (branch, '.'); ++ if (rev) ++ *rev = '\0'; ++ return branch; ++ } ++ + /* Fetch the revision of branch as of date. */ + rev = RCS_getdatebranch (rcs, date, branch); + free (branch); +@@ -3120,6 +3132,7 @@ + struct timespec revdate; + Node *p; + RCSVers *vers; ++ int y; + + /* make sure we have something to look at... */ + assert (rcs != NULL); +@@ -3134,7 +3147,7 @@ + vers = p->data; + + /* split up the date */ +- if (sscanf (vers->date, SDATEFORM, &xtm.tm_year, &xtm.tm_mon, ++ if (sscanf (vers->date, SDATEFORM, &y, &xtm.tm_mon, + &xtm.tm_mday, &xtm.tm_hour, &xtm.tm_min, &xtm.tm_sec) != 6) + error (1, 0, "%s: invalid date for revision %s (%s)", rcs->print_path, + rev, vers->date); +@@ -3144,15 +3157,14 @@ + 2000+, RCS files contain all four digits and we subtract 1900, + because the tm_year field should contain years since 1900. */ + +- if (xtm.tm_year >= 100 && xtm.tm_year < 2000) ++ if (y >= 100 && y < 2000) + error (0, 0, "%s: non-standard date format for revision %s (%s)", + rcs->print_path, rev, vers->date); +- if (xtm.tm_year >= 1900) +- xtm.tm_year -= 1900; ++ xtm.tm_year = y - ((y >= 1900) ? 1900 : 0); + + /* put the date in a form getdate can grok */ +- tdate = Xasprintf ("%d-%d-%d %d:%d:%d -0000", +- xtm.tm_year + 1900, xtm.tm_mon, xtm.tm_mday, ++ tdate = Xasprintf ("%ld-%d-%d %d:%d:%d -0000", ++ (long)xtm.tm_year + 1900, xtm.tm_mon, xtm.tm_mday, + xtm.tm_hour, xtm.tm_min, xtm.tm_sec); + + /* Turn it into seconds since the epoch. +@@ -3173,7 +3185,7 @@ + /* Put an appropriate string into `date', if we were given one. */ + ftm = gmtime (&revdate.tv_sec); + (void) sprintf (date, DATEFORM, +- ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900), ++ (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L), + ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour, + ftm->tm_min, ftm->tm_sec); + } +@@ -3475,6 +3487,7 @@ + KEYWORD_REVISION, + KEYWORD_SOURCE, + KEYWORD_STATE, ++ KEYWORD_MDOCDATE, + KEYWORD_LOCALID + }; + struct rcs_keyword +@@ -3511,6 +3524,7 @@ + KEYWORD_INIT (new, KEYWORD_REVISION, "Revision"); + KEYWORD_INIT (new, KEYWORD_SOURCE, "Source"); + KEYWORD_INIT (new, KEYWORD_STATE, "State"); ++ KEYWORD_INIT (new, KEYWORD_MDOCDATE, "Mdocdate"); + + return new; + } +@@ -3544,6 +3558,30 @@ + + + ++/* Convert an RCS date string into an mdoc string. This is like ++ the RCS date2str function, but for manual pages. */ ++static char * ++mdoc_date (const char *rcs_date) ++{ ++ int year, mon, mday, hour, min, sec; ++ char buf[100]; ++ const char *months[] = { "January", "February", "March", "April", ++ "May", "June", "July", "August", ++ "September", "October", "November", "December", ++ "corrupt" }; ++ ++ (void) sscanf (rcs_date, SDATEFORM, &year, &mon, &mday, &hour, &min, ++ &sec); ++ if (mon < 1 || mon > 12) ++ mon = 13; ++ if (year < 1900) ++ year += 1900; ++ sprintf (buf, "%s %d %04d", months[mon - 1], mday, year); ++ return xstrdup (buf); ++} ++ ++ ++ + /* Escape the characters in a string so that it can be included in an + RCS value. */ + static char * +@@ -3680,13 +3718,13 @@ + srch_len -= (srch_next + 1) - srch; + srch = srch_next + 1; + +- /* Look for the first non alphabetic character after the '$'. */ ++ /* Look for the first non alphanumeric character after the '$'. */ + send = srch + srch_len; + for (s = srch; s < send; s++) +- if (! isalpha ((unsigned char) *s)) ++ if (! isalnum ((unsigned char) *s)) + break; + +- /* If the first non alphabetic character is not '$' or ':', ++ /* If the first non alphanumeric character is not '$' or ':', + then this is not an RCS keyword. */ + if (s == send || (*s != '$' && *s != ':')) + continue; +@@ -3741,6 +3779,11 @@ + free_value = 1; + break; + ++ case KEYWORD_MDOCDATE: ++ value = mdoc_date (ver->date); ++ free_value = 1; ++ break; ++ + case KEYWORD_CVSHEADER: + case KEYWORD_HEADER: + case KEYWORD_ID: +@@ -4177,6 +4220,9 @@ + : (sout != RUN_TTY ? sout + : "(stdout)")))); + ++ if (rev && *rev == '-') ++ ++rev; ++ + assert (rev == NULL || isdigit ((unsigned char) *rev)); + + if (noexec && !server_active && workfile != NULL) +@@ -5081,7 +5127,7 @@ + (void) time (&modtime); + ftm = gmtime (&modtime); + delta->date = Xasprintf (DATEFORM, +- ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900), ++ (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L), + ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour, + ftm->tm_min, ftm->tm_sec); + if (flags & RCS_FLAGS_DEAD) +@@ -7235,6 +7281,7 @@ + /* Walk the deltas in RCS to get to revision VERSION. + + If OP is RCS_ANNOTATE, then write annotations using cvs_output. ++ If OP is RCS_ANNOTATE_BACKWARDS, do the same backwards. + + If OP is RCS_FETCH, then put the contents of VERSION into a + newly-malloc'd array and put a pointer to it in *TEXT. Each line +@@ -7263,6 +7310,7 @@ + RCSVers *vers; + RCSVers *prev_vers; + RCSVers *trunk_vers; ++ RCSVers *top_vers; + char *next; + int ishead, isnext, isversion, onbranch; + Node *node; +@@ -7285,6 +7333,7 @@ + vers = NULL; + prev_vers = NULL; + trunk_vers = NULL; ++ top_vers = NULL; + next = NULL; + onbranch = 0; + foundhead = 0; +@@ -7332,12 +7381,28 @@ + vers = node->data; + next = vers->next; + ++ /* The top version is either HEAD or ++ the last version on the branch. */ ++ if (top_vers == NULL || ++ (onbranch && (op == RCS_ANNOTATE_BACKWARDS))) ++ top_vers = vers; ++ + /* Compare key and trunkversion now, because key points to + storage controlled by rcsbuf_getkey. */ + if (STREQ (branchversion, key)) + isversion = 1; + else + isversion = 0; ++ ++ /* If we are going back and up a branch, and this is ++ the version we should start annotating, we need to ++ clear out all accumulated annotations. */ ++ if ((op == RCS_ANNOTATE_BACKWARDS) && onbranch && STREQ (version, key)) { ++ unsigned int ln; ++ ++ for (ln = 0; ln < curlines.nlines; ++ln) ++ curlines.vector[ln]->vers = NULL; ++ } + } + + while (1) +@@ -7365,17 +7430,27 @@ + rcsbuf_valpolish (rcsbuf, value, 0, &vallen); + if (ishead) + { +- if (! linevector_add (&curlines, value, vallen, NULL, 0)) ++ if (! linevector_add (&curlines, value, vallen, ++ (op == RCS_ANNOTATE_BACKWARDS) ? vers : NULL, 0)) + error (1, 0, "invalid rcs file %s", rcs->print_path); + + ishead = 0; + } + else if (isnext) + { ++ RCSVers *addv, *delv; ++ ++ if (op == RCS_ANNOTATE_BACKWARDS) { ++ addv = onbranch ? NULL : prev_vers; ++ delv = onbranch ? vers : NULL; ++ } else { ++ addv = onbranch ? vers : NULL; ++ delv = onbranch ? NULL : prev_vers; ++ } ++ + if (! apply_rcs_changes (&curlines, value, vallen, + rcs->path, +- onbranch ? vers : NULL, +- onbranch ? NULL : prev_vers)) ++ addv, delv)) + error (1, 0, "invalid change text in %s", rcs->print_path); + } + break; +@@ -7384,6 +7459,14 @@ + + if (isversion) + { ++ /* If we're going backwards and not up a branch, and we ++ reached the version to start at, we're done. */ ++ if ((op == RCS_ANNOTATE_BACKWARDS) && !onbranch && STREQ (version, key)) { ++ foundhead = 1; ++ linevector_copy (&headlines, &curlines); ++ break; ++ } ++ + /* This is either the version we want, or it is the + branchpoint to the version we want. */ + if (STREQ (branchversion, version)) +@@ -7391,7 +7474,9 @@ + /* This is the version we want. */ + linevector_copy (&headlines, &curlines); + foundhead = 1; +- if (onbranch) ++ /* If we are annotating backwards, we have to ++ continue tracking when we're tracking a branch. */ ++ if (onbranch && !(op == RCS_ANNOTATE_BACKWARDS)) + { + /* We have found this version by tracking up a + branch. Restore back to the lines we saved +@@ -7480,6 +7565,7 @@ + switch (op) + { + case RCS_ANNOTATE: ++ case RCS_ANNOTATE_BACKWARDS: + { + unsigned int ln; + +--- cvs-1.12.13+real.orig/src/rcs.h ++++ cvs-1.12.13+real/src/rcs.h +@@ -1,3 +1,5 @@ ++/* $MirOS: src/gnu/usr.bin/cvs/src/rcs.h,v 1.5 2010/09/19 19:43:09 tg Exp $ */ ++ + /* + * Copyright (C) 1986-2005 The Free Software Foundation, Inc. + * +@@ -33,7 +35,7 @@ + CVS) will put this into RCS files. Considered obsolete. */ + #define RCSDEAD "dead" + +-#define DATEFORM "%02d.%02d.%02d.%02d.%02d.%02d" ++#define DATEFORM "%02ld.%02d.%02d.%02d.%02d.%02d" + #define SDATEFORM "%d.%d.%d.%d.%d.%d" + + /* +@@ -189,7 +191,7 @@ + struct rcsbuffer; + + /* What RCS_deltas is supposed to do. */ +-enum rcs_delta_op {RCS_ANNOTATE, RCS_FETCH}; ++enum rcs_delta_op {RCS_ANNOTATE, RCS_ANNOTATE_BACKWARDS, RCS_FETCH}; + + /* + * exported interfaces +--- cvs-1.12.13+real.orig/src/root.c ++++ cvs-1.12.13+real/src/root.c +@@ -265,6 +265,7 @@ + directories. Then we can check against them when a remote user + hands us a CVSROOT directory. */ + static List *root_allow; ++static List *root_allow_regexp; + + static void + delconfig (Node *n) +@@ -288,15 +289,65 @@ + } + + void ++root_allow_regexp_add (const char *arg, const char *configPath) ++{ ++ Node *n; ++ ++ if (!root_allow_regexp) root_allow_regexp = getlist(); ++ n = getnode(); ++ n->key = xstrdup (arg); ++ ++ /* This is a regexp, not the final cvsroot path - we cannot attach ++ it a config. So we attach configPath and we'll root_allow_add() ++ the actual, matching root in root_allow_compare_regexp() */ ++ n->data = (void*)configPath; ++ ++ addnode (root_allow_regexp, n); ++} ++ ++void + root_allow_free (void) + { + dellist (&root_allow); ++ dellist (&root_allow_regexp); ++} ++ ++int ++root_allow_used (void) ++{ ++ return root_allow || root_allow_regexp; ++} ++ ++/* walklist() callback for determining if 'root_to_check' matches ++ n->key (a regexp). If yes, 'root_to_check' will be added as if ++ directly specified through --allow-root. ++ */ ++static int ++root_allow_compare_regexp (Node *n, void *root_to_check) ++{ ++ int status; ++ regex_t re; ++ ++ if (regcomp(&re, n->key, ++ REG_EXTENDED|REG_NOSUB) != 0) ++ { ++ return 0; /* report error? */ ++ } ++ status = regexec(&re, root_to_check, (size_t) 0, NULL, 0); ++ regfree(&re); ++ if (status == 0) ++ { ++ /* n->data contains gConfigPath */ ++ root_allow_add (root_to_check, n->data); ++ return 1; ++ } ++ return 0; + } + + bool + root_allow_ok (const char *arg) + { +- if (!root_allow) ++ if (!root_allow_used()) + { + /* Probably someone upgraded from CVS before 1.9.10 to 1.9.10 + or later without reading the documentation about +@@ -308,12 +359,18 @@ + back "error" rather than waiting for the next request which + expects responses. */ + printf ("\ +-error 0 Server configuration missing --allow-root in inetd.conf\n"); ++error 0 Server configuration missing --allow-root or --allow-root-regexp in inetd.conf\n"); + exit (EXIT_FAILURE); + } + ++ /* Look for 'arg' in the list of full-path allowed roots */ + if (findnode (root_allow, arg)) + return true; ++ ++ /* Match 'arg' against the list of allowed roots regexps */ ++ if (walklist (root_allow_regexp, root_allow_compare_regexp, (void*)arg)) ++ return true; ++ + return false; + } + +@@ -535,6 +592,12 @@ + method = ""; + #endif /* defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */ + ++ if (NULL == method) ++ { ++ error (0, 0, "Missing method in CVSROOT."); ++ goto error_exit; ++ } ++ + /* Now we have an access method -- see if it's valid. */ + + if (!strcasecmp (method, "local")) +@@ -547,6 +610,16 @@ + newroot->method = gserver_method; + else if (!strcasecmp (method, "server")) + newroot->method = server_method; ++ else if (strncmp (method, "ext=", 4) == 0) ++ { ++ newroot->cvs_rsh = xstrdup(method + 4); ++ newroot->method = ext_method; ++ } ++ else if (!strcasecmp (method, "extssh")) ++ { ++ newroot->cvs_rsh = xstrdup("ssh"); ++ newroot->method = extssh_method; ++ } + else if (!strcasecmp (method, "ext")) + newroot->method = ext_method; + else if (!strcasecmp (method, "fork")) +@@ -597,13 +670,15 @@ + else if (!strcasecmp (p, "CVS_RSH")) + { + /* override CVS_RSH environment variable */ +- if (newroot->method == ext_method) +- newroot->cvs_rsh = xstrdup (q); ++ if (newroot->method == ext_method ++ || newroot->method == extssh_method) ++ newroot->cvs_rsh = xstrdup (q); + } + else if (!strcasecmp (p, "CVS_SERVER")) + { + /* override CVS_SERVER environment variable */ + if (newroot->method == ext_method ++ || newroot->method == extssh_method + || newroot->method == fork_method) + newroot->cvs_server = xstrdup (q); + } +@@ -635,7 +710,8 @@ + newroot->isremote = (newroot->method != local_method); + + #if defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT) +- if (readonlyfs && newroot->isremote) ++ if (readonlyfs && newroot->isremote && (newroot->method != ext_method) ++ && (newroot->method != extssh_method)) + error (1, 0, + "Read-only repository feature unavailable with remote roots (cvsroot = %s)", + cvsroot_copy); +@@ -828,6 +904,7 @@ + case server_method: + case ext_method: + no_port = 1; ++ case extssh_method: + /* no_password already set */ + check_hostname = 1; + break; +@@ -871,8 +948,8 @@ + if (no_port && newroot->port) + { + error (0, 0, +-"CVSROOT port specification is only valid for gserver, kserver,"); +- error (0, 0, "and pserver connection methods."); ++"CVSROOT port specification is only valid for extssh,"); ++ error (0, 0, "gserver, kserver and pserver connection methods."); + goto error_exit; + } + #endif /* defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */ +--- cvs-1.12.13+real.orig/src/root.h ++++ cvs-1.12.13+real/src/root.h +@@ -1,3 +1,5 @@ ++/* $MirOS: src/gnu/usr.bin/cvs/src/root.h,v 1.5 2017/01/08 19:13:05 tg Exp $ */ ++ + /* + * Copyright (C) 1986-2005 The Free Software Foundation, Inc. + * +@@ -22,6 +24,7 @@ + kserver_method, + gserver_method, + ext_method, ++ extssh_method, + fork_method + } CVSmethod; + extern const char method_names[][16]; /* change this in root.c if you change +@@ -62,8 +65,10 @@ + __attribute__ ((__malloc__)); + void Create_Root (const char *dir, const char *rootdir); + void root_allow_add (const char *, const char *configPath); ++void root_allow_regexp_add (const char *, const char *configPath); + void root_allow_free (void); + bool root_allow_ok (const char *); ++int root_allow_used (void); + struct config *get_root_allow_config (const char *arg, const char *configPath); + const char *primary_root_translate (const char *root_in); + const char *primary_root_inverse_translate (const char *root_in); +--- cvs-1.12.13+real.orig/src/rsh-client.c ++++ cvs-1.12.13+real/src/rsh-client.c +@@ -53,9 +53,11 @@ + char *cvs_server = (root->cvs_server != NULL + ? root->cvs_server : getenv ("CVS_SERVER")); + int i = 0; +- /* This needs to fit "rsh", "-b", "-l", "USER", "host", +- "cmd (w/ args)", and NULL. We leave some room to grow. */ +- char *rsh_argv[10]; ++ /* This needs to fit "rsh", "-b", "-l", "USER", "-p", port, ++ "--", "host", "cvs", "-R", "server", and NULL. ++ We leave some room to grow. */ ++ char *rsh_argv[16]; ++ char argvport[16]; + + if (!cvs_rsh) + /* People sometimes suggest or assume that this should default +@@ -97,8 +99,20 @@ + rsh_argv[i++] = root->username; + } + ++ if (root->method == extssh_method && root->port) ++ { ++ snprintf(argvport, sizeof(argvport), "%d", root->port); ++ rsh_argv[i++] = "-p"; ++ rsh_argv[i++] = argvport; ++ } ++ ++ /* Only non-option arguments from here. (CVE-2017-12836) */ ++ rsh_argv[i++] = "--"; ++ + rsh_argv[i++] = root->hostname; + rsh_argv[i++] = cvs_server; ++ if (readonlyfs) ++ rsh_argv[i++] = "-R"; + rsh_argv[i++] = "server"; + + /* Mark the end of the arg list. */ +@@ -154,10 +168,11 @@ + * on the server machine does not set CVSROOT to something + * containing a colon (or better yet, upgrade the server). + */ +- command = Xasprintf ("%s server", cvs_server); ++ command = Xasprintf ("%s%s server", cvs_server, readonlyfs ? " -R" : ""); + + { +- char *argv[10]; ++ char argvport[16]; ++ char *argv[16]; + char **p = argv; + + *p++ = cvs_rsh; +@@ -171,6 +186,15 @@ + *p++ = root->username; + } + ++ if (root->method == extssh_method && root->port) ++ { ++ snprintf(argvport, sizeof(argvport), "%d", root->port); ++ *p++ = "-p"; ++ *p++ = argvport; ++ } ++ ++ *p++ = "--"; ++ + *p++ = root->hostname; + *p++ = command; + *p++ = NULL; +--- cvs-1.12.13+real.orig/src/sanity.sh ++++ cvs-1.12.13+real/src/sanity.sh +@@ -1,5 +1,9 @@ + #! /bin/sh + : ++# $MirOS: src/gnu/usr.bin/cvs/src/sanity.sh,v 1.7 2017/01/08 21:14:34 tg Exp $ ++#- ++# set DISABLE_ANY_RSH=1 to skip rsh and ssh calls ++# + # sanity.sh -- a growing testsuite for cvs. + # + # The copyright notice said: "Copyright (C) 1992, 1993 Cygnus Support" +@@ -90,6 +94,23 @@ + fi + } + ++do_save_TZ() ++{ ++ saveset_TZ=${TZ+false} ++ save_TZ=$TZ ++ TZ=UTC0; export TZ ++} ++ ++do_restore_TZ() ++{ ++ if $saveset_TZ :; then ++ unset TZ ++ else ++ TZ=$save_TZ ++ export TZ ++ fi ++} ++ + # See TODO list at end of file. + + # required to make this script work properly. +@@ -1205,6 +1226,11 @@ + # 77. + require_rsh () + { ++ if test x"$DISABLE_ANY_RSH" = x"1"; then ++ skipreason="administratively prohibited" ++ return 77 ++ fi ++ + host=${remotehost-"`hostname`"} + result=`$1 $host 'echo test'` + rc=$? +@@ -1313,7 +1339,7 @@ + if $remote && $LS $TMPDIR/cvs-serv* >/dev/null 2>&1; then + # A true value means ls found files/directories with these names. + # Give the server some time to finish, then retry. +- sleep 1 ++ sleep 2 + if $LS $TMPDIR/cvs-serv* >/dev/null 2>&1; then + warn "$1" "Found cvs-serv* directories in $TMPDIR." + # The above will exit if $skipfail +@@ -1503,6 +1529,9 @@ + # lack \|). + dotest () + { ++ #echo dotest >$TESTDIR/_dotest.fun ++ #pwd >$TESTDIR/_dotest.cwd ++ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd + rm -f $TESTDIR/dotest.ex? 2>&1 + eval "$2" >$TESTDIR/dotest.tmp 2>&1 + status=$? +@@ -1518,6 +1547,9 @@ + # Like dotest except only 2 args and result must exactly match stdin + dotest_lit () + { ++ #echo dotest_lit >$TESTDIR/_dotest.fun ++ #pwd >$TESTDIR/_dotest.cwd ++ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd + rm -f $TESTDIR/dotest.ex? 2>&1 + eval "$2" >$TESTDIR/dotest.tmp 2>&1 + status=$? +@@ -1543,6 +1575,9 @@ + # Like dotest except exitstatus should be nonzero. + dotest_fail () + { ++ #echo dotest_fail >$TESTDIR/_dotest.fun ++ #pwd >$TESTDIR/_dotest.cwd ++ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd + rm -f $TESTDIR/dotest.ex? 2>&1 + eval "$2" >$TESTDIR/dotest.tmp 2>&1 + status=$? +@@ -1558,6 +1593,9 @@ + # Like dotest except output is sorted. + dotest_sort () + { ++ #echo dotest_sort >$TESTDIR/_dotest.fun ++ #pwd >$TESTDIR/_dotest.cwd ++ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd + rm -f $TESTDIR/dotest.ex? 2>&1 + eval "$2" >$TESTDIR/dotest.tmp1 2>&1 + status=$? +@@ -1574,6 +1612,9 @@ + # Like dotest_fail except output is sorted. + dotest_fail_sort () + { ++ #echo dotest_fail_sort >$TESTDIR/_dotest.fun ++ #pwd >$TESTDIR/_dotest.cwd ++ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd + rm -f $TESTDIR/dotest.ex? 2>&1 + eval "$2" >$TESTDIR/dotest.tmp1 2>&1 + status=$? +@@ -1622,6 +1663,7 @@ + tests="$tests parseroot parseroot2 parseroot3 files spacefiles" + tests="${tests} commit-readonly commit-add-missing" + tests="${tests} status" ++ tests="${tests} suck" + # Branching, tagging, removing, adding, multiple directories + tests="${tests} rdiff rdiff-short" + tests="${tests} rdiff2 diff diffnl death death2" +@@ -2600,6 +2642,22 @@ + ### + dotest init-1 "$testcvs init" + ++# We might need to allow "cvs admin" access. ++mkdir wnt ++cd wnt ++dotest init-1a "$testcvs -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}" ++cd CVSROOT ++sed -e 's/^#UserAdminOptions=/UserAdminOptions=/' \ ++ -e '/^LogHistory/d' \ ++ <config >tmpconfig ++mv tmpconfig config ++dotest init-1b "$testcvs -q ci -m allow-cvs-admin" "" \ ++".*/CVSROOT/config,v <-- config ++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]* ++$SPROG commit: Rebuilding administrative file database" ++cd ../.. ++rm -r wnt ++ + # Now hide the primary root behind a secondary if requested. + if $proxy; then + # Save the primary root. +@@ -2726,7 +2784,7 @@ + esac # \$dir + + # Avoid timestamp comparison issues with rsync. +-sleep 1 ++sleep 2 + EOF + chmod a+x $TESTDIR/sync-secondary + +@@ -2781,6 +2839,21 @@ + ### + dotest init-2 "$testcvs init" + ++# We might need to allow "cvs admin" access. ++mkdir wnt ++cd wnt ++dotest init-2a "$testcvs -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}" ++cd CVSROOT ++sed -e 's/^#UserAdminOptions=/UserAdminOptions=/' \ ++ -e '/^LogHistory/d' \ ++ <config >tmpconfig ++mv tmpconfig config ++dotest init-2b "$testcvs -q ci -m allow-cvs-admin" "" \ ++".*/CVSROOT/config,v <-- config ++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]* ++$SPROG commit: Rebuilding administrative file database" ++cd ../.. ++rm -r wnt + + + ### +@@ -2805,6 +2878,7 @@ + + Copyright (C) [0-9]* Free Software Foundation, Inc. + ++Portions contributed by Thorsten Glaser for the MirOS Project and Debian. + Senior active maintainers include Larry Jones, Derek R. Price, + and Mark D. Baushke. Please see the AUTHORS and README files from the CVS + distribution kit for a complete list of contributors and copyrights. +@@ -2822,8 +2896,8 @@ + #Secondary Server: Concurrent Versions System (CVS) [0-9p.]* (.*server)' + if $remote; then + dotest version-2r "${testcvs} version" \ +-'Client: Concurrent Versions System (CVS) [0-9p.]* (client.*) +-Server: Concurrent Versions System (CVS) [0-9p.]* (.*server)' ++'Client: Concurrent Versions System (CVS) [0-9p.]*\(-Mir[^ ]*\)* (client.*) ++Server: Concurrent Versions System (CVS) [0-9p.]*\(-Mir[^ ]*\)* (.*server)' + else + dotest version-2 "${testcvs} version" \ + 'Concurrent Versions System (CVS) [0-9.]*.*' +@@ -2846,7 +2920,7 @@ + dotest basica-0a "$testcvs -q co -l ." + mkdir first-dir + dotest basica-0b "$testcvs add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd .. + rm -r 1 + +@@ -2865,17 +2939,17 @@ + # Remote CVS gives the "cannot open CVS/Entries" error, which is + # clearly a bug, but not a simple one to fix. + dotest basica-1a10 "$testcvs -n add sdir" \ +-"Directory $CVSROOT_DIRNAME/first-dir/sdir added to the repository" \ ++"Directory $CVSROOT_DIRNAME/first-dir/sdir put under version control" \ + "$SPROG add: cannot open CVS/Entries for reading: No such file or directory +-Directory $CVSROOT_DIRNAME/first-dir/sdir added to the repository" ++Directory $CVSROOT_DIRNAME/first-dir/sdir put under version control" + dotest_fail basica-1a11 \ + "test -d $CVSROOT_DIRNAME/first-dir/sdir" + dotest basica-2 "$testcvs add sdir" \ +-"Directory $CVSROOT_DIRNAME/first-dir/sdir added to the repository" ++"Directory $CVSROOT_DIRNAME/first-dir/sdir put under version control" + cd sdir + mkdir ssdir + dotest basica-3 "$testcvs add ssdir" \ +-"Directory $CVSROOT_DIRNAME/first-dir/sdir/ssdir added to the repository" ++"Directory $CVSROOT_DIRNAME/first-dir/sdir/ssdir put under version control" + cd ssdir + echo ssfile >ssfile + +@@ -3145,7 +3219,7 @@ + dotest basicb-0d0 "${testcvs} -q co -l ." "" + mkdir first-dir + dotest basicb-0e "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd .. + rm -r 2 + +@@ -3165,8 +3239,8 @@ + # special only when it is directly in $CVSROOT/CVSROOT. + mkdir Emptydir sdir2 + dotest basicb-2 "${testcvs} add Emptydir sdir2" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/Emptydir added to the repository +-Directory ${CVSROOT_DIRNAME}/first-dir/sdir2 added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/Emptydir put under version control ++Directory ${CVSROOT_DIRNAME}/first-dir/sdir2 put under version control" + cd Emptydir + echo sfile1 starts >sfile1 + dotest basicb-2a10 "${testcvs} -n add sfile1" \ +@@ -3288,7 +3362,7 @@ + dotest basicb-14 "${testcvs} -q co -l ." 'U topfile' + mkdir second-dir + dotest basicb-15 "${testcvs} add second-dir" \ +-"Directory ${CVSROOT_DIRNAME}/second-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/second-dir put under version control" + cd second-dir + touch aa + dotest basicb-16 "${testcvs} add aa" \ +@@ -3327,10 +3401,15 @@ + # many other folks are still using the older 'invalid option' + # lib/getopt.c will use POSIX when __posixly_correct + # otherwise the other, so accept both of them. -- mdb ++ # Added optional single quotes. -- mirabilos ++ # The above is actually untrue, POSIX only documents some older ++ # texts that can be used and explicitly leaves open the format ++ # of these messages. Also, GNU getopt is broken and does not ++ # use __progname in the first place. *sigh* -- mirabilos + dotest_fail basicb-21 "${testcvs} -q admin -H" \ +-"admin: invalid option -- H ++"admin: invalid option -- '*H'* + ${CPROG} \[admin aborted\]: specify ${CPROG} -H admin for usage information" \ +-"admin: illegal option -- H ++"cvs: illegal option -- '*H'* + ${CPROG} \[admin aborted\]: specify ${CPROG} -H admin for usage information" + cd .. + rmdir 1 +@@ -3356,8 +3435,8 @@ + dotest basicc-2 "$testcvs -q co -l ." + mkdir first-dir second-dir + dotest basicc-3 "${testcvs} add first-dir second-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository +-Directory ${CVSROOT_DIRNAME}/second-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control ++Directory ${CVSROOT_DIRNAME}/second-dir put under version control" + # Old versions of CVS often didn't create this top-level CVS + # directory in the first place. I think that maybe the only + # way to get it to work currently is to let CVS create it, +@@ -3807,7 +3886,7 @@ + for i in dir1 dir2 dir3 dir4 dir5 dir6 dir7 dir8; do + mkdir $i + dotest deep-2-$i "${testcvs} add $i" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir1[/dir0-9]* added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir1[/dir0-9]* put under version control" + cd $i + echo file1 >file1 + dotest deep-3-$i "${testcvs} add file1" \ +@@ -3924,7 +4003,7 @@ + if test ! -d $i ; then + mkdir $i + dotest basic2-2-$i "${testcvs} add $i" \ +-"Directory ${CVSROOT_DIRNAME}/.*/$i added to the repository" ++"Directory ${CVSROOT_DIRNAME}/.*/$i put under version control" + fi + + cd $i +@@ -4907,14 +4986,14 @@ + + # try and list a file before it's created, during an old revision, in + # a period when it was dead and in the future +- time_prebirth=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 1 ++ time_prebirth=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 2 + touch dated + dotest ls-D-init-1 "$testcvs -Q add dated" + dotest ls-D-init-2 "$testcvs -Q ci -mm dated" +- time_newborn=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 1 ++ time_newborn=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 2 + echo mm >> dated + dotest ls-D-init-2 "$testcvs -Q ci -mm dated" +- time_predeath=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 1 ++ time_predeath=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 2 + rm dated + dotest ls-D-init-3 "$testcvs -Q rm dated" + dotest ls-D-init-4 "$testcvs -Q ci -mm dated" +@@ -4963,7 +5042,6 @@ + CVSROOT=":pserver;proxy=localhost;proxyport=8080:localhost/dev/null" + dotest parseroot-3r "$testcvs -d'$CVSROOT' logout" \ + "Logging out of :pserver:$username@localhost:2401/dev/null +-$CPROG logout: warning: failed to open $HOME/\.cvspass for reading: No such file or directory + $CPROG logout: Entry not found." + CVSROOT=":pserver;proxyport=8080:localhost/dev/null" + dotest_fail parseroot-4r "$testcvs -d'$CVSROOT' logout" \ +@@ -5010,7 +5088,7 @@ + dotest files-1 "${testcvs} -q co -l ." "" + mkdir first-dir + dotest files-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + touch tfile + dotest files-3 "${testcvs} add tfile" \ +@@ -5023,7 +5101,7 @@ + dotest files-6 "${testcvs} -q update -r C" "" + mkdir dir + dotest files-7 "${testcvs} add dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir added to the repository ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir put under version control + --> Using per-directory sticky tag .C'" + cd dir + touch .file +@@ -5032,12 +5110,12 @@ + ${SPROG} add: use .${SPROG} commit. to add this file permanently" + mkdir sdir + dotest files-7c "${testcvs} add sdir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir/sdir added to the repository ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir/sdir put under version control + --> Using per-directory sticky tag .C'" + cd sdir + mkdir ssdir + dotest files-8 "${testcvs} add ssdir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir/sdir/ssdir added to the repository ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir/sdir/ssdir put under version control + --> Using per-directory sticky tag .C'" + cd ssdir + touch .file +@@ -5117,10 +5195,10 @@ + initial revision: 1\.1" + mkdir 'first dir' + dotest spacefiles-4 "${testcvs} add 'first dir'" \ +-"Directory ${CVSROOT_DIRNAME}/first dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first dir put under version control" + mkdir ./-b + dotest spacefiles-5 "${testcvs} add -- -b" \ +-"Directory ${CVSROOT_DIRNAME}/-b added to the repository" ++"Directory ${CVSROOT_DIRNAME}/-b put under version control" + cd 'first dir' + touch 'a file' + dotest spacefiles-6 "${testcvs} add 'a file'" \ +@@ -5193,7 +5271,7 @@ + dotest status-init-1 "$testcvs -q co -l ." + mkdir first-dir + dotest status-init-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + echo a line >tfile + dotest status-init-3 "${testcvs} add tfile" \ +@@ -5285,7 +5363,7 @@ + cd .. + mkdir fourth-dir + dotest status-init-8 "$testcvs add fourth-dir" \ +-"Directory $CVSROOT_DIRNAME/fourth-dir added to the repository" ++"Directory $CVSROOT_DIRNAME/fourth-dir put under version control" + cd fourth-dir + echo yet another line >t3file + dotest status-init-9 "$testcvs add t3file" \ +@@ -5297,7 +5375,7 @@ + cd ../first-dir + mkdir third-dir + dotest status-init-11 "$testcvs add third-dir" \ +-"Directory $CVSROOT_DIRNAME/first-dir/third-dir added to the repository" ++"Directory $CVSROOT_DIRNAME/first-dir/third-dir put under version control" + cd third-dir + echo another line >t2file + dotest status-init-12 "$testcvs add t2file" \ +@@ -5650,7 +5728,7 @@ + dotest diff-1 "$testcvs -q co -l ." + mkdir first-dir + dotest diff-2 "$testcvs add first-dir" \ +-"Directory $CVSROOT_DIRNAME/first-dir added to the repository" ++"Directory $CVSROOT_DIRNAME/first-dir put under version control" + cd first-dir + + # diff is anomalous. Most CVS commands print the "nothing +@@ -5697,7 +5775,7 @@ + dotest diffnl-000 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest diffnl-001 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + + ${AWK} 'BEGIN {printf("one\ntwo\nthree\nfour\nfive\nsix")}' </dev/null >abc +@@ -5861,7 +5939,7 @@ + # doesn't get confused by it. + mkdir subdir + dotest 65a0 "${testcvs} add subdir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control" + cd subdir + echo file in subdir >sfile + dotest 65a1 "${testcvs} add sfile" \ +@@ -6590,7 +6668,7 @@ + dotest rmadd-1 "$testcvs -q co -l ." + mkdir first-dir + dotest rmadd-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + echo first file1 >file1 + dotest rmadd-3 "${testcvs} add file1" \ +@@ -6668,6 +6746,7 @@ + >$CVSROOT_DIRNAME/CVSROOT/val-tags-tmp + mv $CVSROOT_DIRNAME/CVSROOT/val-tags-tmp \ + $CVSROOT_DIRNAME/CVSROOT/val-tags ++ rm -f $CVSROOT_DIRNAME/CVSROOT/val-tags.db + + dotest rmadd-18 "$testcvs -q update -p -r mynonbranch file1" \ + "first file1" +@@ -6733,7 +6812,7 @@ + # now try forced revision with recursion + mkdir sub + dotest rmadd-26 "${testcvs} -q add sub" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/sub added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/sub put under version control" + echo hello >sub/subfile + dotest rmadd-27 "${testcvs} -q add sub/subfile" \ + "${SPROG} add: use .${SPROG} commit. to add this file permanently" +@@ -6790,7 +6869,7 @@ + dotest rmadd2-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest rmadd2-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + echo 'initial contents' >file1 + dotest rmadd2-3 "${testcvs} add file1" \ +@@ -6890,7 +6969,7 @@ + dotest rmadd3-init1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest rmadd3-init2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + + echo initial content for file1 >file1 +@@ -6941,7 +7020,7 @@ + dotest resurrection-init1 "$testcvs -q co -l ." '' + mkdir first-dir + dotest resurrection-init2 "$testcvs add first-dir" \ +-"Directory $CVSROOT_DIRNAME/first-dir added to the repository" ++"Directory $CVSROOT_DIRNAME/first-dir put under version control" + cd first-dir + + echo initial content for file1 >file1 +@@ -7106,11 +7185,11 @@ + dotest dirs2-1 "$testcvs -q co -l ." + mkdir first-dir + dotest dirs2-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + mkdir sdir + dotest dirs2-3 "${testcvs} add sdir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/sdir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/sdir put under version control" + touch sdir/file1 + dotest dirs2-4 "${testcvs} add sdir/file1" \ + "${SPROG} add: scheduling file .sdir/file1. for addition +@@ -7452,7 +7531,7 @@ + '"${SPROG}"' add: use .'"${SPROG}"' commit. to add this file permanently' + mkdir dir1 + dotest branches2-9 "${testcvs} add dir1" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 added to the repository ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 put under version control + --> Using per-directory sticky tag "'`'"b1'" + echo "file3 first revision" > dir1/file3 + dotest branches2-10 "${testcvs} add dir1/file3" \ +@@ -7802,7 +7881,7 @@ + cd first-dir + mkdir dir2 + dotest branches2-25 "${testcvs} add dir2" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir2 added to the repository ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir2 put under version control + --> Using per-directory sticky tag "'`'"b1'" + echo "file4 first revision" > dir2/file4 + dotest branches2-26 "${testcvs} add dir2/file4" \ +@@ -7952,10 +8031,10 @@ + cd first-dir + mkdir branches mixed mixed2 versions + dotest branches4-2 "${testcvs} -q add branches mixed mixed2 versions" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/branches added to the repository +-Directory ${CVSROOT_DIRNAME}/first-dir/mixed added to the repository +-Directory ${CVSROOT_DIRNAME}/first-dir/mixed2 added to the repository +-Directory ${CVSROOT_DIRNAME}/first-dir/versions added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/branches put under version control ++Directory ${CVSROOT_DIRNAME}/first-dir/mixed put under version control ++Directory ${CVSROOT_DIRNAME}/first-dir/mixed2 put under version control ++Directory ${CVSROOT_DIRNAME}/first-dir/versions put under version control" + + echo file1 >branches/file1 + echo file2 >branches/file2 +@@ -8031,7 +8110,7 @@ + dotest tagc-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest tagc-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + touch file1 file2 + dotest tagc-3 "${testcvs} add file1 file2" \ +@@ -8052,7 +8131,7 @@ + T file2" + # Avoid timestamp granularity bugs (FIXME: CVS should be + # doing the sleep, right?). +- sleep 1 ++ sleep 2 + echo myedit >>file1 + dotest tagc-6a "${testcvs} rm -f file2" \ + "${SPROG} remove: scheduling .file2. for removal +@@ -8193,7 +8272,7 @@ + dotest tagf-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest tagf-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + touch file1 file2 + dotest tagf-3 "${testcvs} add file1 file2" \ +@@ -8397,7 +8476,7 @@ + dotest tag-space-init-1 "$testcvs -q co -l ." + mkdir first-dir + dotest tag-space-init-2 "$testcvs add first-dir" \ +-"Directory $CVSROOT_DIRNAME/first-dir added to the repository" ++"Directory $CVSROOT_DIRNAME/first-dir put under version control" + cd first-dir + touch file1 + dotest tag-space-init-3 "$testcvs add file1" \ +@@ -8672,7 +8751,7 @@ + dotest rcslib-merge-1 "$testcvs -q co -l ." + mkdir first-dir + dotest rcslib-merge-2 "$testcvs -q add first-dir" \ +-"Directory $CVSROOT_DIRNAME.*/first-dir added to the repository" ++"Directory $CVSROOT_DIRNAME.*/first-dir put under version control" + cd ..; rm -r 1 + + dotest rcslib-merge-3 "$testcvs -q co first-dir" "" +@@ -9320,8 +9399,7 @@ + # Also the -d option. + + # Set a predictable time zone for these tests. +- save_TZ=$TZ +- TZ=UTC0; export TZ ++ do_save_TZ + + mkdir 1; cd 1 + mkdir adir bdir cdir +@@ -9444,7 +9522,7 @@ + dotest_fail importc-12 "test -d ${TESTDIR}/other" "" + + dokeep +- TZ=$save_TZ ++ do_restore_TZ + cd .. + rm -r 1 2 + modify_repo rm -rf $CVSROOT_DIRNAME/first-dir +@@ -9757,7 +9835,19 @@ + N import-quirks-4/file1 + N import-quirks-4/file2 + N import-quirks-4/file3 +-No conflicts created by this import" ++No conflicts created by this import ++cvs import: warning: you are using an even vendor branch, which can ++lead to problems: '1.1.2'. Use an odd branch such as '1.1.3' instead." \ ++" ++ ++N import-quirks-4/file1 ++N import-quirks-4/file2 ++N import-quirks-4/file3 ++No conflicts created by this import ++cvs import: warning: you are using an even vendor branch, which can ++cvs import: warning: you are using an even vendor branch, which can ++lead to problems: '1.1.2'. Use an odd branch such as '1.1.3' instead. ++lead to problems: '1.1.2'. Use an odd branch such as '1.1.3' instead." + + dokeep + cd .. +@@ -9785,14 +9875,18 @@ + # Create the module. + dotest import-after-initial-1 \ + "$testcvs -Q import -m. $module X Y" '' ++ sync >/dev/null 2>&1 + + file=m + # Check it out and add a file. + dotest import-after-initial-2 "$testcvs -Q co $module" '' ++ sync >/dev/null 2>&1 + cd $module + echo original > $file + dotest import-after-initial-3 "${testcvs} -Q add $file" "" ++ sync >/dev/null 2>&1 + dotest import-after-initial-4 "$testcvs -Q ci -m. $file" ++ sync >/dev/null 2>&1 + + # Delay a little so the following import isn't done in the same + # second as the preceding commit. +@@ -9803,12 +9897,14 @@ + mkdir sub + cd sub + echo newer-via-import > $file ++ sync >/dev/null 2>&1 + dotest import-after-initial-5 \ + "$testcvs -Q import -m. $module X Y2" '' ++ sync >/dev/null 2>&1 + cd .. + + # Sleep a second so we're sure to be after the second of the import. +- sleep 1 ++ sleep 2 + + dotest import-after-initial-6 \ + "$testcvs -Q update -p -D now $file" 'original' +@@ -10380,7 +10476,7 @@ + dotest join2-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest join2-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + echo 'initial contents of file1' >file1 + dotest join2-3 "${testcvs} add file1" \ +@@ -10489,7 +10585,7 @@ + dotest join3-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest join3-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + echo 'initial contents of file1' >file1 + dotest join3-3 "${testcvs} add file1" \ +@@ -11130,7 +11226,7 @@ + module=x + mkdir $module + dotest join-admin-0-2 "$testcvs -q add $module" \ +-"Directory $CVSROOT_DIRNAME/$module added to the repository" ++"Directory $CVSROOT_DIRNAME/$module put under version control" + cd $module + + # Create a file so applying the first tag works. +@@ -11182,7 +11278,7 @@ + module=x + mkdir $module + dotest join-admin-2-2 "$testcvs -q add $module" \ +-"Directory ${CVSROOT_DIRNAME}/x added to the repository" ++"Directory ${CVSROOT_DIRNAME}/x put under version control" + cd $module + + # Create a file so applying the first tag works. +@@ -11252,7 +11348,7 @@ + dotest join-rm-init-1 "$testcvs -q co -l ." '' + mkdir $module + dotest join-rm-init-2 "$testcvs -q add $module" \ +-"Directory $CVSROOT_DIRNAME/$module added to the repository" ++"Directory $CVSROOT_DIRNAME/$module put under version control" + cd $module + + # add some files. +@@ -11497,7 +11593,7 @@ + echo add a line >>a + mkdir dir1 + dotest conflicts-127b "${testcvs} add dir1" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 put under version control" + dotest conflicts-128 "${testcvs} -q ci -m changed" \ + "$CVSROOT_DIRNAME/first-dir/a,v <-- a + new revision: 1\.2; previous revision: 1\.1" +@@ -11945,7 +12041,7 @@ + dotest conflicts3-1 "$testcvs -q co -l ." + mkdir first-dir + dotest conflicts3-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd .. + mkdir 2; cd 2 + dotest conflicts3-3 "${testcvs} -q co -l first-dir" '' +@@ -11994,7 +12090,7 @@ + # and see that CVS doesn't lose its mind. + mkdir sdir + dotest conflicts3-14 "${testcvs} add sdir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/sdir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/sdir put under version control" + touch sdir/sfile + dotest conflicts3-14a "${testcvs} add sdir/sfile" \ + "${SPROG} add: scheduling file .sdir/sfile. for addition +@@ -12107,7 +12203,7 @@ + dotest clean-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest clean-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + echo "The usual boring test text." > cleanme.txt + dotest clean-3 "${testcvs} add cleanme.txt" \ +@@ -12437,12 +12533,12 @@ + cd first-dir + mkdir subdir + dotest modules-143a "${testcvs} add subdir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control" + + cd subdir + mkdir ssdir + dotest modules-143b "${testcvs} add ssdir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir/ssdir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir/ssdir put under version control" + + touch a b + +@@ -12699,9 +12795,9 @@ + mkdir first-dir second-dir third-dir + dotest modules2-setup-2 \ + "${testcvs} add first-dir second-dir third-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository +-Directory ${CVSROOT_DIRNAME}/second-dir added to the repository +-Directory ${CVSROOT_DIRNAME}/third-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control ++Directory ${CVSROOT_DIRNAME}/second-dir put under version control ++Directory ${CVSROOT_DIRNAME}/third-dir put under version control" + cd third-dir + touch file3 + dotest modules2-setup-3 "${testcvs} add file3" \ +@@ -12947,7 +13043,7 @@ + dotest modules3-0 "$testcvs -q co -l ." + mkdir first-dir + dotest modules3-1 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + + cd first-dir + echo file1 >file1 +@@ -13008,11 +13104,11 @@ + cd second-dir + mkdir suba + dotest modules3-7-workaround1 "${testcvs} add suba" \ +-"Directory ${CVSROOT_DIRNAME}/second-dir/suba added to the repository" ++"Directory ${CVSROOT_DIRNAME}/second-dir/suba put under version control" + cd suba + mkdir subb + dotest modules3-7-workaround2 "${testcvs} add subb" \ +-"Directory ${CVSROOT_DIRNAME}/second-dir/suba/subb added to the repository" ++"Directory ${CVSROOT_DIRNAME}/second-dir/suba/subb put under version control" + cd ../.. + fi + +@@ -13113,13 +13209,13 @@ + dotest modules4-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest modules4-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + + cd first-dir + mkdir subdir subdir_long + dotest modules4-3 "${testcvs} add subdir subdir_long" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository +-Directory ${CVSROOT_DIRNAME}/first-dir/subdir_long added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control ++Directory ${CVSROOT_DIRNAME}/first-dir/subdir_long put under version control" + + echo file1 > file1 + dotest modules4-4 "${testcvs} add file1" \ +@@ -13248,11 +13344,11 @@ + cd first-dir + mkdir subdir + dotest modules5-2 "${testcvs} add subdir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control" + cd subdir + mkdir ssdir + dotest modules5-3 "${testcvs} add ssdir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir/ssdir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir/ssdir put under version control" + touch a b + dotest modules5-4 "${testcvs} add a b" \ + "${SPROG} add: scheduling file .a. for addition +@@ -13291,7 +13387,7 @@ + for i in checkout export tag; do + cat >> ${CVSROOT_DIRNAME}/$i.sh <<EOF + #! $TESTSHELL +-sleep 1 ++sleep 2 + echo "$i script invoked in \`pwd\`" + echo "args: \$@" + EOF +@@ -13950,12 +14046,12 @@ + mkdir mod2-2 + mkdir mod2-2/sub2-2 + dotest cvsadm-2a "${testcvs} add mod1 mod1-2 mod2 mod2/sub2 mod2-2 mod2-2/sub2-2" \ +-"Directory ${CVSROOT_DIRNAME}/mod1 added to the repository +-Directory ${CVSROOT_DIRNAME}/mod1-2 added to the repository +-Directory ${CVSROOT_DIRNAME}/mod2 added to the repository +-Directory ${CVSROOT_DIRNAME}/mod2/sub2 added to the repository +-Directory ${CVSROOT_DIRNAME}/mod2-2 added to the repository +-Directory ${CVSROOT_DIRNAME}/mod2-2/sub2-2 added to the repository" ++"Directory ${CVSROOT_DIRNAME}/mod1 put under version control ++Directory ${CVSROOT_DIRNAME}/mod1-2 put under version control ++Directory ${CVSROOT_DIRNAME}/mod2 put under version control ++Directory ${CVSROOT_DIRNAME}/mod2/sub2 put under version control ++Directory ${CVSROOT_DIRNAME}/mod2-2 put under version control ++Directory ${CVSROOT_DIRNAME}/mod2-2/sub2-2 put under version control" + + # Populate the directories for the halibut + echo "file1" > mod1/file1 +@@ -15001,7 +15097,7 @@ + echo "file1" > mod1/file1 + mkdir moda/modasub + dotest emptydir-3b "${testcvs} add moda/modasub" \ +-"Directory ${CVSROOT_DIRNAME}/moda/modasub added to the repository" ++"Directory ${CVSROOT_DIRNAME}/moda/modasub put under version control" + echo "filea" > moda/modasub/filea + dotest emptydir-4 "${testcvs} add mod1/file1 moda/modasub/filea" \ + "${SPROG} add: scheduling file .mod1/file1. for addition +@@ -15328,8 +15424,8 @@ + dotest toplevel-1 "${testcvs} -q co -l ." '' + mkdir top-dir second-dir + dotest toplevel-2 "${testcvs} add top-dir second-dir" \ +-"Directory ${CVSROOT_DIRNAME}/top-dir added to the repository +-Directory ${CVSROOT_DIRNAME}/second-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/top-dir put under version control ++Directory ${CVSROOT_DIRNAME}/second-dir put under version control" + cd top-dir + + touch file1 +@@ -15447,8 +15543,8 @@ + dotest toplevel2-1 "${testcvs} -q co -l ." '' + mkdir top-dir second-dir + dotest toplevel2-2 "${testcvs} add top-dir second-dir" \ +-"Directory ${CVSROOT_DIRNAME}/top-dir added to the repository +-Directory ${CVSROOT_DIRNAME}/second-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/top-dir put under version control ++Directory ${CVSROOT_DIRNAME}/second-dir put under version control" + cd top-dir + + touch file1 +@@ -15686,7 +15782,7 @@ + # can see the "CVS:" lines. + cat >${TESTDIR}/editme <<EOF + #!${TESTSHELL} +-sleep 1 ++sleep 2 + sed <\$1 -e 's/^/x/' >${TESTDIR}/edit.new + mv ${TESTDIR}/edit.new \$1 + exit 0 +@@ -15697,7 +15793,7 @@ + dotest editor-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest editor-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + touch file1 file2 + dotest editor-3 "${testcvs} add file1 file2" \ +@@ -15741,6 +15837,7 @@ + revision 1\.1 + date: ${ISO8601DATE}; author: ${username}; state: Exp; commitid: ${commitid}; + branches: 1\.1\.2; ++x + xCVS: ---------------------------------------------------------------------- + xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically + xCVS: +@@ -15752,6 +15849,7 @@ + ---------------------------- + revision 1\.1\.2\.1 + date: ${ISO8601DATE}; author: ${username}; state: Exp; lines: ${PLUS}1 -0; commitid: ${commitid}; ++x + xCVS: ---------------------------------------------------------------------- + xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically + xCVS: +@@ -15779,6 +15877,7 @@ + revision 1\.1 + date: ${ISO8601DATE}; author: ${username}; state: Exp; commitid: ${commitid}; + branches: 1\.1\.2; ++x + xCVS: ---------------------------------------------------------------------- + xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically + xCVS: +@@ -15790,6 +15889,7 @@ + ---------------------------- + revision 1\.1\.2\.1 + date: ${ISO8601DATE}; author: ${username}; state: Exp; lines: ${PLUS}1 -0; commitid: ${commitid}; ++x + xCVS: ---------------------------------------------------------------------- + xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically + xCVS: +@@ -15811,6 +15911,7 @@ + revision 1\.1 + date: ${ISO8601DATE}; author: ${username}; state: Exp; commitid: ${commitid}; + branches: 1\.1\.2; ++x + xCVS: ---------------------------------------------------------------------- + xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically + xCVS: +@@ -15822,6 +15923,7 @@ + ---------------------------- + revision 1\.1\.2\.1 + date: ${ISO8601DATE}; author: ${username}; state: Exp; lines: ${PLUS}1 -0; commitid: ${commitid}; ++x + xCVS: ---------------------------------------------------------------------- + xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically + xCVS: +@@ -15836,7 +15938,7 @@ + # Test CVS's response to an unchanged log message + cat >${TESTDIR}/editme <<EOF + #!${TESTSHELL} +-sleep 1 ++sleep 2 + exit 0 + EOF + chmod +x ${TESTDIR}/editme +@@ -15849,7 +15951,7 @@ + # Test CVS's response to an empty log message + cat >${TESTDIR}/editme <<EOF + #!${TESTSHELL} +-sleep 1 ++sleep 2 + cat /dev/null >\$1 + exit 0 + EOF +@@ -15863,7 +15965,7 @@ + # Test CVS's response to a log message with one blank line + cat >${TESTDIR}/editme <<EOF + #!${TESTSHELL} +-sleep 1 ++sleep 2 + echo >\$1 + exit 0 + EOF +@@ -15877,7 +15979,7 @@ + # Test CVS's response to a log message with only comments + cat >${TESTDIR}/editme <<EOF + #!${TESTSHELL} +-sleep 1 ++sleep 2 + cat \$1 >${TESTDIR}/edit.new + mv ${TESTDIR}/edit.new \$1 + exit 0 +@@ -15905,7 +16007,7 @@ + cd ../first-dir + cat >${TESTDIR}/editme <<EOF + #!${TESTSHELL} +-sleep 1 ++sleep 2 + cp /dev/null \$1 + exit 1 + EOF +@@ -16065,7 +16167,7 @@ + cd .. + mkdir env + dotest env-3 "${testcvs} -q add env" \ +-"Directory ${CVSROOT_DIRNAME}/env added to the repository" ++"Directory ${CVSROOT_DIRNAME}/env put under version control" + cd env + echo testing >file1 + dotest env-4 "${testcvs} add file1" \ +@@ -16159,7 +16261,7 @@ + dotest errmsg2-1 "$testcvs -q co -l ." + mkdir first-dir + dotest errmsg2-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + dotest_fail errmsg2-3 "${testcvs} add CVS" \ + "${CPROG} add: cannot add special file .CVS.; skipping" +@@ -16189,7 +16291,7 @@ + mkdir sdir + cd .. + dotest errmsg2-8 "${testcvs} add first-dir/sdir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/sdir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/sdir put under version control" + # while we're here... check commit with no CVS directory + dotest_fail errmsg2-8a "${testcvs} -q ci first-dir nonexistant" \ + "${CPROG} commit: nothing known about .nonexistant' +@@ -16205,7 +16307,7 @@ + mkdir sdir10 + dotest errmsg2-10 "${testcvs} add file10 sdir10" \ + "${SPROG} add: scheduling file .file10. for addition +-Directory ${CVSROOT_DIRNAME}/first-dir/sdir10 added to the repository ++Directory ${CVSROOT_DIRNAME}/first-dir/sdir10 put under version control + ${SPROG} add: use .${SPROG} commit. to add this file permanently" + dotest errmsg2-11 "${testcvs} -q ci -m add-file10" \ + "$CVSROOT_DIRNAME/first-dir/file10,v <-- file10 +@@ -16219,7 +16321,7 @@ + cd .. + mkdir first-dir/sdir10/ssdir + dotest errmsg2-13 "${testcvs} add first-dir/sdir10/ssdir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/sdir10/ssdir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/sdir10/ssdir put under version control" + + touch first-dir/sdir10/ssdir/ssfile + dotest errmsg2-14 \ +@@ -16360,7 +16462,7 @@ + dotest adderrmsg-init1 "${testcvs} -q co -l ." '' + mkdir adderrmsg-dir + dotest adderrmsg-init2 "${testcvs} add adderrmsg-dir" \ +-"Directory ${CVSROOT_DIRNAME}/adderrmsg-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/adderrmsg-dir put under version control" + cd adderrmsg-dir + + # try to add the admin dir +@@ -16839,7 +16941,7 @@ + dotest watch4-0a "${testcvs} -q co -l ." '' + mkdir first-dir + dotest watch4-0b "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + + cd first-dir + dotest watch4-1 "${testcvs} watch on" '' +@@ -16854,7 +16956,7 @@ + # Now test the analogous behavior for directories. + mkdir subdir + dotest watch4-4 "${testcvs} add subdir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control" + cd subdir + touch sfile + dotest watch4-5 "${testcvs} add sfile" \ +@@ -16945,7 +17047,7 @@ + dotest watch5-0a "${testcvs} -q co -l ." '' + mkdir first-dir + dotest watch5-0b "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + + cd first-dir + dotest watch5-1 "${testcvs} watch on" '' +@@ -17125,7 +17227,7 @@ + dotest edit-check-0a "$testcvs -q co -l ." + mkdir first-dir + dotest edit-check-0b "$testcvs add first-dir" \ +-"Directory $CVSROOT_DIRNAME/first-dir added to the repository" ++"Directory $CVSROOT_DIRNAME/first-dir put under version control" + + cd first-dir + dotest edit-check-1 "$testcvs watch on" +@@ -17374,7 +17476,7 @@ + + mkdir second-dir + dotest edit-check-32c "$testcvs add second-dir" \ +-"Directory $CVSROOT_DIRNAME/first-dir/second-dir added to the repository" ++"Directory $CVSROOT_DIRNAME/first-dir/second-dir put under version control" + cd second-dir + echo ThirdFile >file3 + +@@ -18770,7 +18872,7 @@ + dotest mwrap-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest mwrap-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + touch aa + dotest mwrap-3 "${testcvs} add aa" \ +@@ -19180,7 +19282,7 @@ + exit 0 + else + echo "No BugId found." +- sleep 1 ++ sleep 2 + exit 1 + fi + EOF +@@ -19747,7 +19849,7 @@ + dotest taginfo-newfmt-8 "${testcvs} -q tag tag1" "" + mkdir sdir + dotest taginfo-newfmt-8b "${testcvs} -q add sdir" \ +-"Directory ${TESTDIR}/cvsroot/first-dir/sdir added to the repository" ++"Directory ${TESTDIR}/cvsroot/first-dir/sdir put under version control" + touch sdir/file3 + dotest taginfo-newfmt-8c "${testcvs} -q add sdir/file3" \ + "${SPROG} add: use .${SPROG} commit. to add this file permanently" +@@ -20043,7 +20145,7 @@ + new revision: 1\.[0-9]*; previous revision: 1\.[0-9]* + $SPROG commit: Rebuilding administrative file database" + +- sleep 1 ++ sleep 2 + echo '# noop' >> config + dotest config-7 "$testcvs -q ci -mlog-commit" \ + "$CVSROOT_DIRNAME/CVSROOT/config,v <-- config +@@ -21586,7 +21688,7 @@ + dotest logopt-1 "$testcvs -q co -l ." '' + mkdir first-dir + dotest logopt-2 "$testcvs add first-dir" \ +-"Directory $CVSROOT_DIRNAME/first-dir added to the repository" ++"Directory $CVSROOT_DIRNAME/first-dir put under version control" + cd first-dir + echo hi >file1 + dotest logopt-3 "${testcvs} add file1" \ +@@ -21631,7 +21733,7 @@ + dotest ann-1 "$testcvs -q co -l ." + mkdir first-dir + dotest ann-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + cat >file1 <<EOF + this +@@ -21811,7 +21913,7 @@ + module=x + mkdir $module + dotest ann-id-2 "${testcvs} add $module" \ +-"Directory ${CVSROOT_DIRNAME}/$module added to the repository" ++"Directory ${CVSROOT_DIRNAME}/$module put under version control" + cd $module + + file=m +@@ -21972,7 +22074,7 @@ + dotest crerepos-8 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest crerepos-9 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + touch file1 + dotest crerepos-10 "${testcvs} add file1" \ +@@ -21988,7 +22090,7 @@ + dotest crerepos-12 "$testcvs -d $CREREPOS_ROOT -q co -l ." + mkdir crerepos-dir + dotest crerepos-13 "$testcvs add crerepos-dir" \ +-"Directory $TESTDIR/crerepos/crerepos-dir added to the repository" ++"Directory $TESTDIR/crerepos/crerepos-dir put under version control" + cd crerepos-dir + touch cfile + dotest crerepos-14 "${testcvs} add cfile" \ +@@ -22039,8 +22141,7 @@ + + # Save the timezone and set it to UTC for these tests to make the + # value more predicatable. +- save_TZ=$TZ +- TZ=UTC0; export TZ ++ do_save_TZ + + modify_repo mkdir $CVSROOT_DIRNAME/first-dir + +@@ -22517,7 +22618,7 @@ + revision 1\.4" + + dokeep +- TZ=$save_TZ ++ do_restore_TZ + cd .. + rm -r first-dir + modify_repo rm -rf $CVSROOT_DIRNAME/first-dir +@@ -22707,8 +22808,7 @@ + # revisions 1.1 and 1.1.1.1 differ by 1 second. + + # Need a predictable time zone. +- save_TZ=$TZ +- TZ=UTC0; export TZ ++ do_save_TZ + + mkdir rcs4 + cd rcs4 +@@ -22766,7 +22866,7 @@ + Sticky Options: (none)' + + dokeep +- TZ=$save_TZ ++ do_restore_TZ + cd ../.. + rm -r rcs4 + modify_repo rm -rf $CVSROOT_DIRNAME/rcs4-dir +@@ -23087,11 +23187,11 @@ + dotest backuprecover-1 "$testcvs -q co -l ." + mkdir first-dir + dotest backuprecover-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + mkdir dir + dotest backuprecover-3 "${testcvs} add dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir put under version control" + touch file1 dir/file2 + dotest backuprecover-4 "${testcvs} -q add file1 dir/file2" \ + "${SPROG} add: use \`${SPROG} commit' to add these files permanently" +@@ -23348,7 +23448,7 @@ + dotest sshstdio-1 "$testcvs -d $SSHSTDIO_ROOT -q co -l ." + mkdir first-dir + dotest sshstdio-2 "$testcvs add first-dir" \ +- "Directory $CVSROOT_DIRNAME/first-dir added to the repository" ++ "Directory $CVSROOT_DIRNAME/first-dir put under version control" + cd first-dir + a='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' + c='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' +@@ -23526,16 +23626,17 @@ + continue + fi + ++ # times have been tweaked so leap seconds don't matter + cat <<EOF >$CVSROOT_DIRNAME/CVSROOT/history +-O3395c677|anonymous|<remote>/*0|ccvs||ccvs ++O3395c684|anonymous|<remote>/*0|ccvs||ccvs + O3396c677|anonymous|<remote>/src|ccvs||src + O3397c677|kingdon|<remote>/*0|ccvs||ccvs + M339cafae|nk|<remote>|ccvs/src|1.229|sanity.sh +-M339cafff|anonymous|<remote>|ccvs/src|1.23|Makefile ++M339cb00c|anonymous|<remote>|ccvs/src|1.23|Makefile + M339dc339|kingdon|~/work/*0|ccvs/src|1.231|sanity.sh + W33a6eada|anonymous|<remote>*4|ccvs/emx||Makefile.in + C3b235f50|kingdon|<remote>|ccvs/emx|1.3|README +-M3b23af50|kingdon|~/work/*0|ccvs/doc|1.281|cvs.texinfo ++M3b23af62|kingdon|~/work/*0|ccvs/doc|1.281|cvs.texinfo + EOF + + dotest history-1 "${testcvs} history -e -a" \ +@@ -23691,7 +23792,7 @@ + dotest modes-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest modes-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + touch aa + dotest modes-3 "${testcvs} add aa" \ +@@ -23817,7 +23918,7 @@ + dotest modes2-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest modes2-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + touch aa + dotest modes2-3 "${testcvs} add aa" \ +@@ -23864,8 +23965,8 @@ + dotest modes3-1 "$testcvs -q co -l ." + mkdir first-dir second-dir + dotest modes3-2 "${testcvs} add first-dir second-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository +-Directory ${CVSROOT_DIRNAME}/second-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control ++Directory ${CVSROOT_DIRNAME}/second-dir put under version control" + touch first-dir/aa second-dir/ab + dotest modes3-3 "${testcvs} add first-dir/aa second-dir/ab" \ + "${SPROG} add: scheduling file .first-dir/aa. for addition +@@ -23944,7 +24045,7 @@ + dotest stamps-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest stamps-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + touch aa + echo '$''Id$' >kw +@@ -24073,7 +24174,7 @@ + dotest perms-1 "$testcvs -q co -l ." + mkdir first-dir + dotest perms-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + + touch foo +@@ -24115,7 +24216,7 @@ + dotest symlinks-1 "$testcvs -q co -l ." + mkdir first-dir + dotest symlinks-2 "$testcvs add first-dir" \ +-"Directory $CVSROOT_DIRNAME/first-dir added to the repository" ++"Directory $CVSROOT_DIRNAME/first-dir put under version control" + cd first-dir + + dotest symlinks-2.1 "ln -s $TESTDIR/fumble slink" +@@ -24158,7 +24259,7 @@ + dotest symlinks2-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest symlinks2-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + echo nonsymlink > slink + dotest symlinks2-3 "${testcvs} add slink" \ +@@ -24196,7 +24297,7 @@ + dotest hardlinks-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest hardlinks-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + + # Make up some ugly filenames, to test that they get +@@ -24285,7 +24386,7 @@ + dotest sticky-1 "$testcvs -q co -l ." + mkdir first-dir + dotest sticky-2 "$testcvs add first-dir" \ +-"Directory $CVSROOT_DIRNAME/first-dir added to the repository" ++"Directory $CVSROOT_DIRNAME/first-dir put under version control" + cd first-dir + + touch file1 +@@ -24390,7 +24491,7 @@ + dotest keyword-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest keyword-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + + echo '$''Author$' > file1 +@@ -24595,7 +24696,7 @@ + dotest keywordlog-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest keywordlog-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + echo initial >file1 + dotest keywordlog-3 "${testcvs} add file1" \ +@@ -24852,7 +24953,7 @@ + xx" + + cd ../CVSROOT +- echo "MaxCommentLeaderLength=1k" >>config ++ echo "MaxCommentLeaderLength=1K" >>config + dotest keywordlog-35 "$testcvs -Q ci -mset-MaxCommentLeaderLength" + + cd ../first-dir +@@ -24892,7 +24993,7 @@ + dotest keywordname-init-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest keywordname-init-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + + echo '$'"Name$" >file1 +@@ -25012,7 +25113,7 @@ + dotest keyword2-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest keyword2-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + + echo '$''Revision$' >> file1 +@@ -25214,7 +25315,7 @@ + ${PLUS} modify on branch + ${PLUS} modify on branch after brtag" + +- # With a branch sticky tag, HEAD is the head of the trunk. ++ # Even with a branch sticky tag, HEAD is the head of the trunk. + dotest head-br1-setup "${testcvs} -q update -r br1" "[UP] file1" + dotest head-br1-update "${testcvs} -q update -r HEAD -p file1" \ + "imported contents +@@ -25222,7 +25323,26 @@ + add a line on trunk after trunktag" + # But diff thinks that HEAD is "br1". Case (b) from cvs.texinfo. + # Probably people are relying on it. +- dotest head-br1-diff "${testcvs} -q diff -c -r HEAD -r br1" "" ++ #dotest head-br1-diff "${testcvs} -q diff -c -r HEAD -r br1" "" ++ dotest head-br1-diffdot "${testcvs} -q diff -c -r .bhead -r br1" "" ++ # Always. Fuck people relying on it. ++ dotest_fail head-br1-diff "${testcvs} -q diff -c -r HEAD -r br1" \ ++"Index: file1 ++=================================================================== ++RCS file: ${CVSROOT_DIRNAME}/first-dir/file1,v ++retrieving revision 1\.3 ++retrieving revision 1\.3\.2\.2 ++diff -c -r1\.3 -r1\.3\.2\.2 ++\*\*\* file1 ${RFCDATE} 1\.3 ++--- file1 ${RFCDATE} 1\.3\.2\.2 ++\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* ++\*\*\* 1,3 \*\*\*\* ++--- 1,5 ---- ++ imported contents ++ add a line on trunk ++ add a line on trunk after trunktag ++${PLUS} modify on branch ++${PLUS} modify on branch after brtag" + + # With a nonbranch sticky tag on a branch, + # HEAD is the head of the trunk +@@ -25235,7 +25355,26 @@ + # CVS 1.9 and older thought that HEAD is "brtag" (this was + # noted as "strange, maybe accidental"). But "br1" makes a + # whole lot more sense. +- dotest head-brtag-diff "${testcvs} -q diff -c -r HEAD -r br1" "" ++ #dotest head-brtag-diff "${testcvs} -q diff -c -r HEAD -r br1" "" ++ dotest head-brtag-diffdot "${testcvs} -q diff -c -r .bhead -r br1" "" ++ # HEAD is always tip of the trunk. ++ dotest_fail head-brtag-diff "${testcvs} -q diff -c -r HEAD -r br1" \ ++"Index: file1 ++=================================================================== ++RCS file: ${CVSROOT_DIRNAME}/first-dir/file1,v ++retrieving revision 1\.3 ++retrieving revision 1\.3\.2\.2 ++diff -c -r1\.3 -r1\.3\.2\.2 ++\*\*\* file1 ${RFCDATE} 1\.3 ++--- file1 ${RFCDATE} 1\.3\.2\.2 ++\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* ++\*\*\* 1,3 \*\*\*\* ++--- 1,5 ---- ++ imported contents ++ add a line on trunk ++ add a line on trunk after trunktag ++${PLUS} modify on branch ++${PLUS} modify on branch after brtag" + + # With a nonbranch sticky tag on the trunk, HEAD is the head + # of the trunk, I think. +@@ -25319,12 +25458,11 @@ + # for checkout and update as well. + # + mkdir 1; cd 1 +- save_TZ=$TZ +- TZ=UTC0; export TZ ++ do_save_TZ + dotest tagdate-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest tagdate-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + + echo trunk-1 >file1 +@@ -25784,7 +25922,7 @@ + + unset date_T1 date_T2 date_T3 date_T4 date_T5 + unset date_T6 date_T7 date_T8 date_T9 +- TZ=$save_TZ ++ do_restore_TZ + + dokeep + rm -r 1 2 3 4 +@@ -25802,7 +25940,7 @@ + dotest multibranch2-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest multibranch2-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + + echo trunk-1 >file1 +@@ -26038,7 +26176,7 @@ + dotest admin-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest admin-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + + dotest_fail admin-3 "${testcvs} -q admin -i file1" \ +@@ -27002,7 +27140,7 @@ + dotest reserved-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest reserved-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + touch file1 + dotest reserved-3 "${testcvs} add file1" \ +@@ -28061,18 +28199,18 @@ + dotest release-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest release-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + mkdir dir1 + dotest release-3 "${testcvs} add dir1" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 put under version control" + mkdir dir2 + dotest release-4 "${testcvs} add dir2" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir2 added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir2 put under version control" + cd dir2 + mkdir dir3 + dotest release-5 "${testcvs} add dir3" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir2/dir3 added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir2/dir3 put under version control" + + cd ../.. + dotest release-6 "${testcvs} release -d first-dir/dir2/dir3 first-dir/dir1" \ +@@ -28093,11 +28231,11 @@ + cd first-dir + mkdir dir1 + dotest release-10 "${testcvs} add dir1" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 put under version control" + cd dir2 + mkdir dir3 + dotest release-11 "${testcvs} add dir3" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir/dir2/dir3 added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir/dir2/dir3 put under version control" + + cd ../.. + dotest release-12 "${testcvs} release first-dir/dir2/dir3 first-dir/dir1" \ +@@ -28148,7 +28286,7 @@ + cd first-dir + mkdir second-dir + dotest release-18 "$testcvs add second-dir" \ +-"Directory $CVSROOT_DIRNAME/first-dir/second-dir added to the repository" ++"Directory $CVSROOT_DIRNAME/first-dir/second-dir put under version control" + + cd second-dir + touch file1 +@@ -28756,8 +28894,33 @@ + testcvs2="$testcvs -d '$CVSROOT2'" + + dotest multiroot-setup-1 "mkdir $CVSROOT1_DIRNAME $CVSROOT2_DIRNAME" ++ + dotest multiroot-setup-2 "$testcvs1 init" ++ # remove automatically-created LogHistory to work around the fact ++ # that CVS does not track those per root (and thus warns about ++ # encountering multiple of these entries) ++ mkdir wrkarnd; cd wrkarnd ++ dotest multiroot-setup-2a "$testcvs1 -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}" ++ cd CVSROOT ++ sed -e '/^LogHistory/d' <config >tmpconfig ++ mv tmpconfig config ++ dotest multiroot-setup-2b "$testcvs1 -q ci -m workaround-LogHistory" "" \ ++".*/CVSROOT/config,v <-- config ++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]* ++$SPROG commit: Rebuilding administrative file database" ++ cd ../..; rm -r wrkarnd ++ + dotest multiroot-setup-3 "$testcvs2 init" ++ mkdir wrkarnd; cd wrkarnd ++ dotest multiroot-setup-3a "$testcvs2 -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}" ++ cd CVSROOT ++ sed -e '/^LogHistory/d' <config >tmpconfig ++ mv tmpconfig config ++ dotest multiroot-setup-3b "$testcvs2 -q ci -m workaround-LogHistory" "" \ ++".*/CVSROOT/config,v <-- config ++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]* ++$SPROG commit: Rebuilding administrative file database" ++ cd ../..; rm -r wrkarnd + + # + # create some directories in ${CVSROOT1_DIRNAME} +@@ -28766,8 +28929,8 @@ + dotest multiroot-setup-4 "${testcvs1} co -l ." "${SPROG} checkout: Updating ." + mkdir mod1-1 mod1-2 + dotest multiroot-setup-5 "${testcvs1} add mod1-1 mod1-2" \ +-"Directory ${CVSROOT1_DIRNAME}/mod1-1 added to the repository +-Directory ${CVSROOT1_DIRNAME}/mod1-2 added to the repository" ++"Directory ${CVSROOT1_DIRNAME}/mod1-1 put under version control ++Directory ${CVSROOT1_DIRNAME}/mod1-2 put under version control" + echo file1-1 > mod1-1/file1-1 + echo file1-2 > mod1-2/file1-2 + dotest multiroot-setup-6 "${testcvs1} add mod1-1/file1-1 mod1-2/file1-2" \ +@@ -28792,8 +28955,8 @@ + dotest multiroot-setup-8 "${testcvs2} co -l ." "${SPROG} checkout: Updating ." + mkdir mod2-1 mod2-2 + dotest multiroot-setup-9 "${testcvs2} add mod2-1 mod2-2" \ +-"Directory ${CVSROOT2_DIRNAME}/mod2-1 added to the repository +-Directory ${CVSROOT2_DIRNAME}/mod2-2 added to the repository" ++"Directory ${CVSROOT2_DIRNAME}/mod2-1 put under version control ++Directory ${CVSROOT2_DIRNAME}/mod2-2 put under version control" + echo file2-1 > mod2-1/file2-1 + echo file2-2 > mod2-2/file2-2 + dotest multiroot-setup-6 "${testcvs2} add mod2-1/file2-1 mod2-2/file2-2" \ +@@ -29861,7 +30024,27 @@ + CVSROOT2=`newroot $CVSROOT2_DIRNAME` + + dotest multiroot2-1 "${testcvs} -d ${CVSROOT1} init" "" ++ mkdir wrkarnd; cd wrkarnd ++ dotest multiroot2-1a "$testcvs -d ${CVSROOT1} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}" ++ cd CVSROOT ++ sed -e '/^LogHistory/d' <config >tmpconfig ++ mv tmpconfig config ++ dotest multiroot2-1b "$testcvs -d ${CVSROOT1} -q ci -m workaround-LogHistory" "" \ ++".*/CVSROOT/config,v <-- config ++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]* ++$SPROG commit: Rebuilding administrative file database" ++ cd ../..; rm -r wrkarnd + dotest multiroot2-2 "${testcvs} -d ${CVSROOT2} init" "" ++ mkdir wrkarnd; cd wrkarnd ++ dotest multiroot2-2a "$testcvs -d ${CVSROOT2} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}" ++ cd CVSROOT ++ sed -e '/^LogHistory/d' <config >tmpconfig ++ mv tmpconfig config ++ dotest multiroot2-2b "$testcvs -d ${CVSROOT2} -q ci -m workaround-LogHistory" "" \ ++".*/CVSROOT/config,v <-- config ++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]* ++$SPROG commit: Rebuilding administrative file database" ++ cd ../..; rm -r wrkarnd + + mkdir imp-dir; cd imp-dir + echo file1 >file1 +@@ -30017,12 +30200,32 @@ + + mkdir 1; cd 1 + dotest multiroot3-1 "${testcvs} -d ${CVSROOT1} init" "" ++ mkdir wrkarnd; cd wrkarnd ++ dotest multiroot3-1a "$testcvs -d ${CVSROOT1} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}" ++ cd CVSROOT ++ sed -e '/^LogHistory/d' <config >tmpconfig ++ mv tmpconfig config ++ dotest multiroot3-1b "$testcvs -d ${CVSROOT1} -q ci -m workaround-LogHistory" "" \ ++".*/CVSROOT/config,v <-- config ++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]* ++$SPROG commit: Rebuilding administrative file database" ++ cd ../..; rm -r wrkarnd + dotest multiroot3-2 "${testcvs} -d ${CVSROOT1} -q co -l ." "" + mkdir dir1 + dotest multiroot3-3 "${testcvs} add dir1" \ +-"Directory ${TESTDIR}/root1/dir1 added to the repository" ++"Directory ${TESTDIR}/root1/dir1 put under version control" + dotest multiroot3-4 "${testcvs} -d ${CVSROOT2} init" "" + rm -r CVS ++ mkdir wrkarnd; cd wrkarnd ++ dotest multiroot3-4a "$testcvs -d ${CVSROOT2} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}" ++ cd CVSROOT ++ sed -e '/^LogHistory/d' <config >tmpconfig ++ mv tmpconfig config ++ dotest multiroot3-4b "$testcvs -d ${CVSROOT2} -q ci -m workaround-LogHistory" "" \ ++".*/CVSROOT/config,v <-- config ++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]* ++$SPROG commit: Rebuilding administrative file database" ++ cd ../..; rm -r wrkarnd + dotest multiroot3-5 "${testcvs} -d ${CVSROOT2} -q co -l ." "" + mkdir dir2 + +@@ -30037,7 +30240,7 @@ + echo "D/dir2////" >>CVS/Entries + + dotest multiroot3-7 "${testcvs} add dir2" \ +-"Directory ${TESTDIR}/root2/dir2 added to the repository" ++"Directory ${TESTDIR}/root2/dir2 put under version control" + + touch dir1/file1 dir2/file2 + if $remote; then +@@ -30143,10 +30346,20 @@ + + mkdir 1; cd 1 + dotest multiroot4-1 "${testcvs} -d ${CVSROOT1} init" "" ++ mkdir wrkarnd; cd wrkarnd ++ dotest multiroot4-1a "$testcvs -d ${CVSROOT1} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}" ++ cd CVSROOT ++ sed -e '/^LogHistory/d' <config >tmpconfig ++ mv tmpconfig config ++ dotest multiroot4-1b "$testcvs -d ${CVSROOT1} -q ci -m workaround-LogHistory" "" \ ++".*/CVSROOT/config,v <-- config ++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]* ++$SPROG commit: Rebuilding administrative file database" ++ cd ../..; rm -r wrkarnd + dotest multiroot4-2 "${testcvs} -d ${CVSROOT1} -q co -l ." "" + mkdir dircom + dotest multiroot4-3 "${testcvs} add dircom" \ +-"Directory ${TESTDIR}/root1/dircom added to the repository" ++"Directory ${TESTDIR}/root1/dircom put under version control" + cd dircom + touch file1 + dotest multiroot4-4 "${testcvs} add file1" \ +@@ -30158,10 +30371,20 @@ + cd ../.. + mkdir 2; cd 2 + dotest multiroot4-6 "${testcvs} -d ${CVSROOT2} init" "" ++ mkdir wrkarnd; cd wrkarnd ++ dotest multiroot4-6a "$testcvs -d ${CVSROOT2} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}" ++ cd CVSROOT ++ sed -e '/^LogHistory/d' <config >tmpconfig ++ mv tmpconfig config ++ dotest multiroot4-6b "$testcvs -d ${CVSROOT2} -q ci -m workaround-LogHistory" "" \ ++".*/CVSROOT/config,v <-- config ++new revision: 1\.[0-9]*; previous revision: 1\.[0-9]* ++$SPROG commit: Rebuilding administrative file database" ++ cd ../..; rm -r wrkarnd + dotest multiroot4-7 "${testcvs} -d ${CVSROOT2} -q co -l ." "" + mkdir dircom + dotest multiroot4-8 "${testcvs} add dircom" \ +-"Directory ${TESTDIR}/root2/dircom added to the repository" ++"Directory ${TESTDIR}/root2/dircom put under version control" + cd dircom + touch file2 + dotest multiroot4-9 "${testcvs} add file2" \ +@@ -30179,7 +30402,7 @@ + # repository) and so on would also look the same. + mkdir sdir2 + dotest multiroot4-11 "${testcvs} -d ${CVSROOT2} add sdir2" \ +-"Directory ${TESTDIR}/root2/dircom/sdir2 added to the repository" ++"Directory ${TESTDIR}/root2/dircom/sdir2 put under version control" + + dotest multiroot4-12 "${testcvs} -q update" "" + cd .. +@@ -30208,7 +30431,7 @@ + dotest rmroot-setup-1 "${testcvs} -q co -l ." '' + mkdir first-dir + dotest rmroot-setup-2 "${testcvs} add first-dir" \ +-"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/first-dir put under version control" + cd first-dir + touch file1 file2 + dotest rmroot-setup-3 "${testcvs} add file1 file2" \ +@@ -30383,7 +30606,7 @@ + willfail: :whocares + EOF + dotest_fail pserver-3 "$servercvs pserver" \ +-"error 0 Server configuration missing --allow-root in inetd.conf" <<EOF ++"error 0 Server configuration missing --allow-root or --allow-root-regexp in inetd.conf" <<EOF + BEGIN AUTH REQUEST + $CVSROOT_DIRNAME + testme +@@ -30391,6 +30614,26 @@ + END AUTH REQUEST + EOF + ++ regexp='^'`dirname ${CVSROOT_DIRNAME}`'/[^/]+$' ++ dotest pserver-3b "${testcvs} --allow-root-regexp=$regexp pserver" \ ++"I LOVE YOU" <<EOF ++BEGIN AUTH REQUEST ++${CVSROOT_DIRNAME} ++testme ++Ay::'d ++END AUTH REQUEST ++EOF ++ ++ regexp='^'`dirname ${CVSROOT_DIRNAME}`'/[^/]+$' ++ dotest_fail pserver-3c "${testcvs} --allow-root-regexp=$regexp pserver" \ ++"$CPROG \\[pserver aborted\\]: ${CVSROOT_DIRNAME}/subdir: no such repository" <<EOF ++BEGIN AUTH REQUEST ++${CVSROOT_DIRNAME}/subdir ++testme ++Ay::'d ++END AUTH REQUEST ++EOF ++ + # Confirm that not sending a newline during auth cannot constitute + # a denial-of-service attack. This assumes that PATH_MAX is less + # than 65536 bytes. If PATH_MAX is larger than 65535 bytes, this +@@ -31033,6 +31276,8 @@ + EOF + echo THIS-CONFIG-OPTION-IS-BAD=XXX >$TESTDIR/newconfig + dotest_fail server-20 "$testcvs server -c $TESTDIR/newconfig" \ ++"Usage: cvs server ++Normally invoked by a cvs client on a remote machine." \ + "E $SPROG \[server aborted\]: Invalid path to config file specified: \`$TESTDIR/newconfig'" <<EOF + Root $TESTDIR/crerepos + Directory . +@@ -31041,6 +31286,8 @@ + EOF + dotest_fail server-21 \ + "$testcvs server -c /etc/cvs/this-shouldnt-exist" \ ++"Usage: cvs server ++Normally invoked by a cvs client on a remote machine." \ + "E $SPROG \[server aborted\]: Failed to resolve path: \`/etc/cvs/this-shouldnt-exist': No such file or directory" <<EOF + Root $TESTDIR/crerepos + Directory . +@@ -31301,7 +31548,7 @@ + # + # Incidentally, I can reproduce this behavior with Linux 2.4.20 and + # Bash 2.05 or Bash 2.05b. +- sleep 1 ++ sleep 2 + dotest_fail client-10 "$testcvs update" \ + "$CPROG update: Server attempted to update a file via an invalid pathname: + $CPROG \[update aborted\]: \`$HOME/.bashrc'\." +@@ -31322,7 +31569,7 @@ + echo "ok" + cat >/dev/null + EOF +- sleep 1 ++ sleep 2 + dotest_fail client-11 "$testcvs update" \ + "$CPROG \[update aborted\]: patch original file \./\.bashrc does not exist" + +@@ -31342,7 +31589,7 @@ + echo "ok" + cat >/dev/null + EOF +- sleep 1 ++ sleep 2 + dotest_fail client-12 "$testcvs update" \ + "$CPROG update: Server attempted to update a file via an invalid pathname: + $CPROG \[update aborted\]: \`\.\./\.\./home/.bashrc'\." +@@ -31362,7 +31609,7 @@ + echo "ok" + cat >/dev/null + EOF +- sleep 1 ++ sleep 2 + dotest_fail client-13 "$testcvs update" \ + "$CPROG update: Server attempted to update a file via an invalid pathname: + $CPROG \[update aborted\]: \`$HOME/.bashrc'\." +@@ -31382,7 +31629,7 @@ + echo "ok" + cat >/dev/null + EOF +- sleep 1 ++ sleep 2 + dotest_fail client-14 "$testcvs update" \ + "$CPROG update: Server attempted to update a file via an invalid pathname: + $CPROG \[update aborted\]: \`\.\./\.\./home/.bashrc'\." +@@ -31402,7 +31649,7 @@ + echo "ok" + cat >/dev/null + EOF +- sleep 1 ++ sleep 2 + dotest_fail client-15 "$testcvs update" \ + "$CPROG update: Server attempted to update a file via an invalid pathname: + $CPROG \[update aborted\]: \`$HOME/.bashrc'\." +@@ -31422,7 +31669,7 @@ + echo "ok" + cat >/dev/null + EOF +- sleep 1 ++ sleep 2 + dotest_fail client-16 "$testcvs update" \ + "$CPROG update: Server attempted to update a file via an invalid pathname: + $CPROG \[update aborted\]: \`\.\./\.\./home/.bashrc'\." +@@ -31446,7 +31693,7 @@ + echo "ok" + cat >/dev/null + EOF +- sleep 1 ++ sleep 2 + dotest_fail client-18 "$testcvs update" \ + "$CPROG \[update aborted\]: protocol error: Copy-file tried to specify directory" + +@@ -31459,7 +31706,7 @@ + # Check that the client detects redirect loops. + cat >$TESTDIR/serveme <<EOF + #!$TESTSHELL +-echo "Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set Gssapi-authenticate expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version" ++echo "Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set Gssapi-authenticate expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck" + echo "ok" + echo "Redirect $CVSROOT" + +@@ -31467,7 +31714,7 @@ + cat >/dev/null + EOF + echo newstuff >file1 +- sleep 1 ++ sleep 2 + dotest_fail client-20 "$testcvs ci" \ + "$CPROG commit: Examining \. + $CPROG \[commit aborted\]: \`Redirect' loop detected\. Server misconfiguration$QUESTION" +@@ -31709,7 +31956,7 @@ + cd second + mkdir otherdir + dotest template-add-1 "${testcvs} add otherdir" \ +-"Directory ${CVSROOT_DIRNAME}/second/otherdir added to the repository" ++"Directory ${CVSROOT_DIRNAME}/second/otherdir put under version control" + if $remote; then + dotest template-add-2r \ + "cmp otherdir/CVS/Template ${TESTDIR}/template/temp.def" '' +@@ -31856,6 +32103,10 @@ + ALL (cat >/dev/null; echo %R) >$TESTDIR/referrer + ALL $RSYNC -gopr --delete $PRIMARY_CVSROOT_DIRNAME/ $SECONDARY_CVSROOT_DIRNAME + EOF ++ # remove automatically-created LogHistory to work around the fact ++ # that we see both writeproxy and primary config here ++ sed -e '/^LogHistory/d' <config >tmpconfig ++ mv tmpconfig config + cat >>config <<EOF + PrimaryServer=$PRIMARY_CVSROOT + EOF +@@ -31868,7 +32119,7 @@ + save_CVS_SERVER=$CVS_SERVER + ln -s $PRIMARY_CVSROOT_DIRNAME $TESTDIR/primary_link + dotest writeproxy-0 "$CVS_SERVER server" \ +-"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version ++"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck + ok + ok + ok" \ +@@ -32066,6 +32317,10 @@ + cat >>loginfo <<EOF + ALL $RSYNC -gopr --delete $PRIMARY_CVSROOT_DIRNAME/ $SECONDARY_CVSROOT_DIRNAME + EOF ++ # remove automatically-created LogHistory to work around the fact ++ # that we see both writeproxy and primary config here ++ sed -e '/^LogHistory/d' <config >tmpconfig ++ mv tmpconfig config + cat >>config <<EOF + PrimaryServer=$PRIMARY_CVSROOT + EOF +@@ -32088,7 +32343,7 @@ + + # No need to check the PID of the last client since we are testing with + # Redirect disabled. +-proot_arg="--allow-root $SECONDARY_CVSROOT_DIRNAME" ++proot_arg="--allow-root ${PRIMARY_CVSROOT##*:} --allow-root $SECONDARY_CVSROOT_DIRNAME" + exec $servercvs \$proot_arg "\$@" + EOF + cat <<EOF >$TESTDIR/writeproxy-primary-wrapper +@@ -32152,7 +32407,7 @@ + mv $TESTDIR/save-root $PRIMARY_CVSROOT_DIRNAME + + dotest writeproxy-noredirect-5 "$CVS_SERVER server" \ +-"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version ++"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck + ok + ok + ok +@@ -32184,7 +32439,7 @@ + cd firstdir + echo now you see me >file1 + dotest writeproxy-noredirect-6 "$CVS_SERVER server" \ +-"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version ++"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck + ok + ok + ok +@@ -32214,7 +32469,7 @@ + echo /file1/0/dummy+timestamp// >>CVS/Entries + + dotest writeproxy-noredirect-7 "$CVS_SERVER server" \ +-"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version ++"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck + ok + ok + Mode u=rw,g=rw,o=r +@@ -32327,9 +32582,9 @@ + + # Set new roots. + PRIMARY_CVSROOT_DIRNAME=$TESTDIR/primary_cvsroot +- PRIMARY_CVSROOT=:ext:$host$PRIMARY_CVSROOT_DIRNAME ++ PRIMARY_CVSROOT=:ext:$host:$PRIMARY_CVSROOT_DIRNAME + SECONDARY_CVSROOT_DIRNAME=$TESTDIR/writeproxy_cvsroot +- SECONDARY_CVSROOT=":ext;Redirect=yes:$host$SECONDARY_CVSROOT_DIRNAME" ++ SECONDARY_CVSROOT=":ext;Redirect=yes:$host:$SECONDARY_CVSROOT_DIRNAME" + + # Initialize the primary repository + dotest writeproxy-ssh-init-1 "$testcvs -d$PRIMARY_CVSROOT init" +@@ -32343,6 +32598,10 @@ + cat >>loginfo <<EOF + ALL echo Referrer=%R; cat >/dev/null + EOF ++ # remove automatically-created LogHistory to work around the fact ++ # that we see both writeproxy and primary config here ++ sed -e '/^LogHistory/d' <config >tmpconfig ++ mv tmpconfig config + cat >>config <<EOF + PrimaryServer=$PRIMARY_CVSROOT + EOF +@@ -32426,9 +32685,9 @@ + + # Set new roots. + PRIMARY_CVSROOT_DIRNAME=$TESTDIR/primary_cvsroot +- PRIMARY_CVSROOT=:ext:$host$PRIMARY_CVSROOT_DIRNAME ++ PRIMARY_CVSROOT=:ext:$host:$PRIMARY_CVSROOT_DIRNAME + SECONDARY_CVSROOT_DIRNAME=$TESTDIR/writeproxy_cvsroot +- SECONDARY_CVSROOT=":ext;Redirect=no:$host$PRIMARY_CVSROOT_DIRNAME" ++ SECONDARY_CVSROOT=":ext;Redirect=no:$host:$PRIMARY_CVSROOT_DIRNAME" + + # Initialize the primary repository + dotest writeproxy-ssh-noredirect-init-1 \ +@@ -32444,6 +32703,10 @@ + cat >>loginfo <<EOF + ALL echo Referrer=%R; cat >/dev/null + EOF ++ # remove automatically-created LogHistory to work around the fact ++ # that we see both writeproxy and primary config here ++ sed -e '/^LogHistory/d' <config >tmpconfig ++ mv tmpconfig config + cat >>config <<EOF + PrimaryServer=$PRIMARY_CVSROOT + EOF +@@ -32463,7 +32726,7 @@ + + # No need to check the PID of the last client since we are testing with + # Redirect disabled. +-proot_arg="--allow-root=$SECONDARY_CVSROOT_DIRNAME" ++proot_arg="--allow-root ${PRIMARY_CVSROOT##*:} --allow-root=$SECONDARY_CVSROOT_DIRNAME" + exec $CVS_SERVER \$proot_arg "\$@" + EOF + cat <<EOF >$TESTDIR/writeproxy-primary-wrapper +@@ -32836,7 +33099,7 @@ + *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} ) + *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} ) + *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} ) +-Directory ${CVSROOT_DIRNAME}/trace/subdir added to the repository" \ ++Directory ${CVSROOT_DIRNAME}/trace/subdir put under version control" \ + " + *callerdat=${PFMT}, argc=1, argv=${PFMT}, + *direntproc=${PFMT}, dirleavproc=${PFMT}, +@@ -32868,7 +33131,7 @@ + *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} ) + *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} ) + *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} ) +-${DOTSTAR}Directory ${CVSROOT_DIRNAME}/trace/subdir added to the repository ++${DOTSTAR}Directory ${CVSROOT_DIRNAME}/trace/subdir put under version control + S -> CVS_SERVER_SLEEP not set\. + S -> Lock_Cleanup() + S -> Lock_Cleanup() +@@ -35507,6 +35770,35 @@ + ;; + + ++ ++ suck) ++ modify_repo mkdir $CVSROOT_DIRNAME/first-dir ++ dotest suck-init-1 "$testcvs -Q co first-dir" ++ ++ cd first-dir ++ ${AWK} 'BEGIN { for (i = 64; i < 96; i++) printf "%02x %c\n", i-64, i }' \ ++ </dev/null | ${TR} '@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_' \ ++ '\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037' \ ++ | ${TR} 'abcdef' 'ABCDEF' >alloctet.dat ++ ${AWK} 'BEGIN { for (i = 32; i < 256; i++) printf "%02X %c\n", i, i }' \ ++ </dev/null >>alloctet.dat ++ ++ dotest suck-1 "$testcvs -Q add alloctet.dat" ++ dotest suck-2 "$testcvs -Q ci -m added" ++ ++ cd .. ++ ++ dotest suck-3 "$testcvs -Q suck first-dir/alloctet.dat >commavs" ++ echo "first-dir/alloctet.dat,v" >commavl ++ cat $CVSROOT_DIRNAME/first-dir/alloctet.dat,v >>commavl ++ dotest suck-eq "diff commavs commavl" ++ ++ dokeep ++ rm -r first-dir commavs commavl ++ modify_repo rm -rf $CVSROOT_DIRNAME/first-dir ++ ;; ++ ++ + + *) + echo $what is not the name of a test -- ignored +--- cvs-1.12.13+real.orig/src/server.c ++++ cvs-1.12.13+real/src/server.c +@@ -80,6 +80,13 @@ + /* for select */ + # include "xselect.h" + ++/* for TCP_NODELAY */ ++# include <netinet/tcp.h> ++ ++# ifndef S_ISSOCK ++# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) ++# endif ++ + # ifndef O_NONBLOCK + # define O_NONBLOCK O_NDELAY + # endif +@@ -823,6 +830,14 @@ + } + # endif + ++ if (root_allow_used() && !root_allow_ok(arg)) ++ { ++ if (alloc_pending (80 + strlen (arg))) ++ sprintf (pending_error_text, ++ "E Bad root %s", arg); ++ return; ++ } ++ + /* For pserver, this will already have happened, and the call will do + nothing. But for rsh, we need to do it now. */ + config = get_root_allow_config (current_parsed_root->directory, +@@ -2350,6 +2365,7 @@ + bool *pre = closure; + + /* %c = cvs_cmd_name ++ * %I = commit ID + * %p = shortrepos + * %r = repository + */ +@@ -2367,6 +2383,7 @@ + # endif /* SUPPORT_OLD_INFO_FMT_STRINGS */ + filter, + "c", "s", cvs_cmd_name, ++ "I", "s", global_session_id, + "R", "s", referrer ? referrer->original : "NONE", + "p", "s", ".", + "r", "s", current_parsed_root->directory, +@@ -3519,7 +3536,7 @@ + * Therefore, we wish to avoid reprocessing the command since that would + * cause endless recursion. + */ +- if (isProxyServer()) ++ if ((command != version || current_parsed_root) && isProxyServer()) + { + # ifdef PROXY_SUPPORT + if (reprocessing) +@@ -4621,6 +4638,14 @@ + + + static void ++serve_suck (char *arg) ++{ ++ do_cvs_command ("suck", suck); ++} ++ ++ ++ ++static void + serve_add (char *arg) + { + do_cvs_command ("add", add); +@@ -5237,6 +5262,7 @@ + { + free (vers->ts_user); + vers->ts_user = NULL; ++ vers->ts_user_ists = 0; + } + } + else if (scratched_file == NULL && entries_line == NULL) +@@ -5962,6 +5988,7 @@ + REQ_LINE("rannotate", serve_rannotate, 0), + REQ_LINE("noop", serve_noop, RQ_ROOTLESS), + REQ_LINE("version", serve_version, RQ_ROOTLESS), ++ REQ_LINE("suck", serve_suck, 0), + REQ_LINE(NULL, NULL, 0) + + #undef REQ_LINE +@@ -6271,8 +6298,12 @@ + + static const char *const server_usage[] = + { ++#ifdef ALLOW_CONFIG_OVERRIDE + "Usage: %s %s [-c config-file]\n", + "\t-c config-file\tPath to an alternative CVS config file.\n", ++#else ++ "Usage: %s %s\n", ++#endif + "Normally invoked by a cvs client on a remote machine.\n", + NULL + }; +@@ -6289,8 +6320,8 @@ + { + switch (c) + { +-#ifdef ALLOW_CONFIG_OVERRIDE + case 'c': ++#ifdef ALLOW_CONFIG_OVERRIDE + if (gConfigPath) free (gConfigPath); + gConfigPath = xstrdup (optarg); + break; +@@ -6671,6 +6702,22 @@ + + extern char *crypt (const char *, const char *); + ++char *crypt_trad(const char *, const char *); ++ ++char * ++crypt_trad(const char *key, const char *setting) ++{ ++ char *rv; ++ static char buf[2]; ++ ++ if ((rv = crypt(key, setting)) == NULL) { ++ buf[0] = setting && (*setting == 'x') ? '*' : 'x'; ++ buf[1] = '\0'; ++ rv = buf; ++ } ++ ++ return (rv); ++} + + /* + * 0 means no entry found for this user. +@@ -6799,7 +6846,7 @@ + + /* Verify blank passwords directly, otherwise use crypt(). */ + if ((found_password == NULL) +- || ((strcmp (found_password, crypt (password, found_password)) ++ || ((strcmp (found_password, crypt_trad (password, found_password)) + == 0))) + { + /* Give host_user_ptr permanent storage. */ +@@ -6811,7 +6858,7 @@ + #ifdef LOG_AUTHPRIV + syslog (LOG_AUTHPRIV | LOG_NOTICE, + "password mismatch for %s in %s: %s vs. %s", username, +- repository, crypt(password, found_password), found_password); ++ repository, crypt_trad(password, found_password), found_password); + #endif + *host_user_ptr = NULL; + retval = 2; +@@ -6887,7 +6934,7 @@ + static int + check_pam_password (char **username, char *password) + { +- int retval, err; ++ int retval; + struct pam_conv conv = { cvs_pam_conv, 0 }; + char *pam_stage = "start"; + +@@ -6930,7 +6977,7 @@ + + return retval == PAM_SUCCESS; /* indicate success */ + } +-#endif ++#else /* !HAVE_PAM */ + + static int + check_system_password (char *username, char *password) +@@ -6976,14 +7023,14 @@ + if (*found_passwd) + { + /* user exists and has a password */ +- if (strcmp (found_passwd, crypt (password, found_passwd)) == 0) ++ if (strcmp (found_passwd, crypt_trad (password, found_passwd)) == 0) + return 1; + else + { + #ifdef LOG_AUTHPRIV + syslog (LOG_AUTHPRIV | LOG_NOTICE, + "password mismatch for %s: %s vs. %s", username, +- crypt(password, found_passwd), found_passwd); ++ crypt_trad(password, found_passwd), found_passwd); + #endif + return 0; + } +@@ -6996,6 +7043,7 @@ + #endif + return 1; + } ++#endif /* !HAVE_PAM */ + + + +@@ -7164,8 +7212,10 @@ + if the client dies while we are waiting for input. */ + { + int on = 1; ++ struct stat sb; + +- if (setsockopt (STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE, ++ if (fstat (STDIN_FILENO, &sb) == 0 && S_ISSOCK(sb.st_mode) && ++ setsockopt (STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE, + &on, sizeof on) < 0) + { + # ifdef HAVE_SYSLOG_H +@@ -7175,6 +7225,23 @@ + } + #endif + ++#ifdef TCP_NODELAY ++ /* Avoid latency due to Nagle algorithm. */ ++ { ++ int on = 1; ++ struct stat sb; ++ ++ if (fstat (STDOUT_FILENO, &sb) == 0 && S_ISSOCK(sb.st_mode) && ++ setsockopt (STDOUT_FILENO, IPPROTO_TCP, TCP_NODELAY, ++ &on, sizeof on) < 0) ++ { ++# ifdef HAVE_SYSLOG_H ++ syslog (LOG_DAEMON | LOG_ERR, "error setting TCP_NODELAY: %m"); ++# endif /* HAVE_SYSLOG_H */ ++ } ++ } ++#endif ++ + /* Make sure the protocol starts off on the right foot... */ + pserver_read_line (&tmp, NULL); + +@@ -7317,8 +7384,10 @@ + if the client dies while we are waiting for input. */ + { + int on = 1; ++ struct stat sb; + +- if (setsockopt (STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE, ++ if (fstat (STDIN_FILENO, &sb) == 0 && S_ISSOCK(sb.st_mode) && ++ setsockopt (STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE, + (char *) &on, sizeof on) < 0) + { + # ifdef HAVE_SYSLOG_H +@@ -7326,6 +7395,23 @@ + # endif /* HAVE_SYSLOG_H */ + } + } ++#endif ++ ++#ifdef TCP_NODELAY ++ /* Avoid latency due to Nagle algorithm. */ ++ { ++ int on = 1; ++ struct stat sb; ++ ++ if (fstat (STDOUT_FILENO, &sb) == 0 && S_ISSOCK(sb.st_mode) && ++ setsockopt (STDOUT_FILENO, IPPROTO_TCP, TCP_NODELAY, ++ (char *) &on, sizeof on) < 0) ++ { ++# ifdef HAVE_SYSLOG_H ++ syslog (LOG_DAEMON | LOG_ERR, "error setting TCP_NODELAY: %m"); ++# endif /* HAVE_SYSLOG_H */ ++ } ++ } + #endif + + status = krb_recvauth (KOPT_DO_MUTUAL, STDIN_FILENO, &ticket, "rcmd", +--- cvs-1.12.13+real.orig/src/status.c ++++ cvs-1.12.13+real/src/status.c +@@ -213,8 +213,11 @@ + cvs_output (" Working revision:\t", 0); + cvs_output (vers->vn_user, 0); + +- /* Only add the UTC timezone if there is a time to use. */ +- if (!server_active && strlen (vers->ts_rcs) > 0) ++ /* Only add the UTC timezone if there is a time to use. ++ * ts_rcs sometimes contains only "=" character so we check len > 1 */ ++ if (!server_active && strlen (vers->ts_rcs) > 1 && ++ /* prevent an ugly error message */ ++ strcmp(vers->ts_rcs, "Result of merge") != 0) + { + /* Convert from the asctime() format to ISO 8601 */ + char *buf; +--- cvs-1.12.13+real.orig/src/subr.c ++++ cvs-1.12.13+real/src/subr.c +@@ -807,6 +807,8 @@ + long s; + long us; + ++ if (time (&t) > desttime) return; ++ + while (time (&t) <= desttime) + { + #ifdef HAVE_GETTIMEOFDAY +@@ -835,6 +837,14 @@ + (void)nanosleep (&ts, NULL); + } + } ++ ++ /* sleep another 20 ms (2 HZ) to avoid races */ ++ { ++ struct timespec ts; ++ ts.tv_sec = 0; ++ ts.tv_nsec = 20 * 1000 * 1000; ++ (void)nanosleep (&ts, NULL); ++ } + } + + +@@ -1285,7 +1295,7 @@ + dellist(&pflist); + free(b); + error (1, 0, +-"internal error: unknown integer arg size (%d)", ++"internal error: unknown integer arg size (%zd)", + length); + break; + } +@@ -1328,7 +1338,7 @@ + dellist(&pflist); + free(b); + error (1, 0, +-"internal error: unknown floating point arg size (%d)", ++"internal error: unknown floating point arg size (%zd)", + length); + break; + } +--- cvs-1.12.13+real.orig/src/suck.c ++++ cvs-1.12.13+real/src/suck.c +@@ -0,0 +1,140 @@ ++/*- ++ * Copyright (c) 2011 ++ * Thorsten Glaser <tg@mirbsd.org> ++ * ++ * Provided that these terms and disclaimer and all copyright notices ++ * are retained or reproduced in an accompanying document, permission ++ * is granted to deal in this work without restriction, including un- ++ * limited rights to use, publicly perform, distribute, sell, modify, ++ * merge, give away, or sublicence. ++ * ++ * This work is provided "AS IS" and WITHOUT WARRANTY of any kind, to ++ * the utmost extent permitted by applicable law, neither express nor ++ * implied; without malicious intent or gross negligence. In no event ++ * may a licensor, author or contributor be held liable for indirect, ++ * direct, other damage, loss, or other issues arising in any way out ++ * of dealing in the work, even if advised of the possibility of such ++ * damage or existence of a defect, except proven that it results out ++ * of said person's immediate fault when using the work as intended. ++ *- ++ * Download a ,v file from the repository ++ */ ++ ++#include "cvs.h" ++ ++#ifdef HAVE_MMAP ++#include <sys/mman.h> ++ ++#ifndef MAP_FILE ++#define MAP_FILE 0 ++#endif ++ ++#ifndef MAP_FAILED ++#define MAP_FAILED ((void *)-1) ++#endif ++#endif ++ ++static const char * const suck_usage[] = { ++ "Usage: %s %s module/filename\n", ++ NULL ++}; ++ ++int ++suck(int argc, char *argv[]) ++{ ++ size_t m, n; ++ int fd; ++ char *buf, *cp, *fn; ++ struct stat sb; ++ FILE *fp; ++ RCSNode *rcs; ++ ++ if (argc != 2) ++ usage(suck_usage); ++ ++#ifdef CLIENT_SUPPORT ++ if (current_parsed_root->isremote) { ++ start_server(); ++ ++ if (!supported_request("suck")) ++ error(1, 0, "server does not support %s", "suck"); ++ ++ send_arg(argv[1]); ++ send_to_server("suck\012", 0); ++ ++ return (get_responses_and_close()); ++ } ++#endif ++ ++ /* check for ../ attack */ ++ if (pathname_levels(argv[1]) > 0) ++ error(1, 0, "path %s outside of repository", argv[1]); ++ ++ /* repo + / + module/file */ ++ cp = Xasprintf("%s/%s", current_parsed_root->directory, argv[1]); ++ ++ /* find the slash */ ++ if ((fn = cp + (last_component(cp) - cp)) == cp) ++ usage(suck_usage); ++ ++ /* repo/module + file */ ++ fn[-1] = '\0'; ++ ++ /* check if it's a valid RCS file, not /etc/passwd or somesuch */ ++ if ((rcs = RCS_parse(fn, cp)) == NULL) { ++ error(1, 0, "not a valid RCS file: %s/%s", cp, fn); ++ return (1); ++ } ++ ++ /* save the real pathname of the RCS file for later */ ++ fn = xstrdup(rcs->path); ++ ++ /* free up resources allocated until now */ ++ freercsnode(&rcs); ++ free(cp); ++ ++ /* attempt to open the file ourselves */ ++ if ((fp = CVS_FOPEN(fn, FOPEN_BINARY_READ)) == NULL) ++ error(1, errno, "Could not open RCS archive %s", fn); ++ if (fstat(fd = fileno(fp), &sb) < 0) ++ error(1, errno, "Could not stat RCS archive %s", fn); ++ ++ /*XXX this code will fail for large files */ ++ ++ /* attempt to slurp entire file into memory */ ++#ifdef HAVE_MMAP ++ buf = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, 0); ++ if (buf == NULL || buf == MAP_FAILED) { ++ error(0, errno, "Could not map memory to RCS archive %s", fn); ++#endif ++ /* backup: just read */ ++ cp = buf = xmalloc(n = sb.st_size); ++ while (n) { ++ m = read(fd, cp, n); ++ if (m == (size_t)-1) ++ error(1, errno, ++ "Could not read RCS archive %s", fn); ++ cp += m; ++ n -= m; ++ } ++#ifdef HAVE_MMAP ++ } ++#endif ++ ++ /* write real pathname plus newline as text */ ++ cvs_output(fn + strlen(current_parsed_root->directory) + 1, 0); ++ cvs_output("\n", 1); ++ ++ /* write file content as binary */ ++ cvs_output_binary(buf, sb.st_size); ++ ++ /* release all resources allocated */ ++#ifdef HAVE_MMAP ++ munmap(buf, sb.st_size); ++#endif ++ fclose(fp); ++ free(fn); ++ ++ /* success */ ++ return (0); ++} +--- cvs-1.12.13+real.orig/src/tag.c ++++ cvs-1.12.13+real/src/tag.c +@@ -310,6 +310,7 @@ + * %b = branch mode = "?" (delete ops - unknown) | "T" (branch) + * | "N" (not branch) + * %c = cvs_cmd_name ++ * %I = commit ID + * %p = path from $CVSROOT + * %r = path from root + * %{sVv} = attribute list = file name, old version tag will be deleted +@@ -333,6 +334,7 @@ + "b", "c", delete_flag + ? '?' : branch_mode ? 'T' : 'N', + "c", "s", cvs_cmd_name, ++ "I", "s", global_session_id, + #ifdef SERVER_SUPPORT + "R", "s", referrer ? referrer->original : "NONE", + #endif /* SERVER_SUPPORT */ +@@ -747,6 +749,7 @@ + * %b = branch mode = "?" (delete ops - unknown) | "T" (branch) + * | "N" (not branch) + * %c = cvs_cmd_name ++ * %I = commit ID + * %p = path from $CVSROOT + * %r = path from root + * %{sVv} = attribute list = file name, old version tag will be deleted +@@ -770,6 +773,7 @@ + "b", "c", delete_flag + ? '?' : branch_mode ? 'T' : 'N', + "c", "s", cvs_cmd_name, ++ "I", "s", global_session_id, + #ifdef SERVER_SUPPORT + "R", "s", referrer ? referrer->original : "NONE", + #endif /* SERVER_SUPPORT */ +@@ -1235,14 +1239,14 @@ + else if (strcmp (version, "0") == 0) + { + if (!quiet) +- error (0, 0, "couldn't tag added but un-commited file `%s'", ++ error (0, 0, "couldn't tag added but un-committed file `%s'", + finfo->file); + goto free_vars_and_return; + } + else if (version[0] == '-') + { + if (!quiet) +- error (0, 0, "skipping removed but un-commited file `%s'", ++ error (0, 0, "skipping removed but un-committed file `%s'", + finfo->file); + goto free_vars_and_return; + } +@@ -1450,6 +1454,7 @@ + * 2. If IDB is non-NULL and val-tags cannot be opened for write. + * This allows callers to ignore the harmless inability to + * update the val-tags cache. ++ * 3. If CVSREADONLYFS is set (same as #2 above). + * false If the file could be opened and the tag is not present. + */ + static int is_in_val_tags (DBM **idb, const char *name) +@@ -1459,6 +1464,10 @@ + datum mytag; + int status; + ++ /* do nothing if we know we fail anyway */ ++ if (readonlyfs) ++ return 1; ++ + /* Casting out const should be safe here - input datums are not + * written to by the myndbm functions. + */ +@@ -1580,7 +1589,7 @@ + * we are already there, or "" if we should do a W_LOCAL recursion. + * Sorry for three cases, but the "" case is needed in case the + * working directories come from diverse parts of the repository, the +- * NULL case avoids an unneccesary chdir, and the non-NULL, non-"" ++ * NULL case avoids an unnecessary chdir, and the non-NULL, non-"" + * case is needed for checkout, where we don't want to chdir if the + * tag is found in CVSROOTADM_VALTAGS, but there is not (yet) any + * local directory. +--- cvs-1.12.13+real.orig/src/update.c ++++ cvs-1.12.13+real/src/update.c +@@ -58,7 +58,7 @@ + static int patch_file (struct file_info *finfo, + Vers_TS *vers_ts, + int *docheckout, struct stat *file_info, +- unsigned char *checksum); ++ md5_uint32 *checksum); + static void patch_file_write (void *, const char *, size_t); + #endif + static int merge_file (struct file_info *finfo, Vers_TS *vers); +@@ -723,7 +723,7 @@ + { + int docheckout; + struct stat file_info; +- unsigned char checksum[16]; ++ md5_uint32 checksum[4]; + + retval = patch_file (finfo, + vers, &docheckout, +@@ -735,7 +735,8 @@ + (rcs_diff_patches + ? SERVER_RCS_DIFF + : SERVER_PATCHED), +- file_info.st_mode, checksum, ++ file_info.st_mode, ++ (void *)checksum, + NULL); + break; + } +@@ -1181,6 +1182,7 @@ + { + free (vers->ts_user); + vers->ts_user = NULL; ++ vers->ts_user_ists = 0; + } + } + return 0; +@@ -1197,7 +1199,7 @@ + { + char *backup; + int set_time, retval = 0; +- int status; ++ int status = 0; + int file_is_dead; + struct buffer *revbuf; + +@@ -1366,6 +1368,7 @@ + + if (xvers_ts->ts_user != NULL) + free (xvers_ts->ts_user); ++ xvers_ts->ts_user_ists = 0; /*XXX really? */ + xvers_ts->ts_user = xstrdup (xvers_ts->ts_rcs); + } + +@@ -1511,7 +1514,7 @@ + */ + static int + patch_file (struct file_info *finfo, Vers_TS *vers_ts, int *docheckout, +- struct stat *file_info, unsigned char *checksum) ++ struct stat *file_info, md5_uint32 *checksum) + { + char *backup; + char *file1; +--- cvs-1.12.13+real.orig/src/vers_ts.c ++++ cvs-1.12.13+real/src/vers_ts.c +@@ -268,7 +268,10 @@ + time_stamp_server (finfo->file, vers_ts, entdata); + else + #endif ++ { + vers_ts->ts_user = time_stamp (finfo->file); ++ vers_ts->ts_user_ists = 1; ++ } + } + + return (vers_ts); +@@ -339,6 +342,7 @@ + { + struct tm *tm_p; + ++ vers_ts->ts_user_ists = 1; + vers_ts->ts_user = xmalloc (25); + /* We want to use the same timestamp format as is stored in the + st_mtime. For unix (and NT I think) this *must* be universal +--- cvs-1.12.13+real.orig/src/wrapper.c ++++ cvs-1.12.13+real/src/wrapper.c +@@ -86,7 +86,7 @@ + move this to a per-connection data structure, or better yet + think about a cleaner solution. */ + static int wrap_setup_already_done = 0; +- char *homedir; ++ char *homedir = NULL; + + if (wrap_setup_already_done != 0) + return; +@@ -107,6 +107,11 @@ + free (file); + } + ++#ifdef SERVER_SUPPORT ++ if (!server_active) ++#endif ++ { ++ + /* Then add entries found in home dir, (if user has one) and file + exists. */ + homedir = get_homedir (); +@@ -115,6 +120,8 @@ + hand it might be obnoxious to complain when CVS will function + just fine without .cvswrappers (and many users won't even know what + .cvswrappers is). */ ++ } ++ + if (homedir != NULL) + { + char *file = strcat_filename_onto_homedir (homedir, CVSDOTWRAPPER); +@@ -339,6 +346,12 @@ + if (!line || line[0] == '#') + return; + ++ /* Allows user to declare all wrappers null and void */ ++ if (line[0] == '!') { ++ wrap_kill (); ++ return; ++ } ++ + memset (&e, 0, sizeof(e)); + + /* Search for the wild card */ +--- cvs-1.12.13+real.orig/src/zlib.c ++++ cvs-1.12.13+real/src/zlib.c +@@ -229,7 +229,7 @@ + would fetch all the available bytes, and at least one byte. */ + + status = (*cb->buf->input) (cb->buf->closure, bd->text, +- need, BUFFER_DATA_SIZE, &nread); ++ need ? 1 : 0, BUFFER_DATA_SIZE, &nread); + + if (status == -2) + /* Don't try to recover from memory allcoation errors. */ diff --git a/data/cvs/cvs_1.12.13+real.orig.tar.gz b/data/cvs/cvs_1.12.13+real.orig.tar.gz Binary files differnew file mode 100644 index 000000000..5b3006a57 --- /dev/null +++ b/data/cvs/cvs_1.12.13+real.orig.tar.gz diff --git a/data/cvs/linker.diff b/data/cvs/linker.diff new file mode 100644 index 000000000..b4cca5076 --- /dev/null +++ b/data/cvs/linker.diff @@ -0,0 +1,11 @@ +diff -ur cvs-1.12.13/src/Makefile.am cvs-1.12.13+iPhone/src/Makefile.am +--- cvs-1.12.13/src/Makefile.am 2018-09-04 10:32:01.000000000 -1000 ++++ cvs-1.12.13+iPhone/src/Makefile.am 2018-09-04 10:32:57.000000000 -1000 +@@ -110,7 +110,6 @@ + ../diff/libdiff.a \ + ../lib/libcvs.a \ + $(ZLIB_LIBS) +-cvs_LDFLAGS = -Wl,--as-needed + cvs_LDADD = $(cvs_client_objects) \ + ../diff/libdiff.a \ + ../lib/libcvs.a \ diff --git a/data/cvs/make.sh b/data/cvs/make.sh index a1eb6e34e..d266d0315 100644 --- a/data/cvs/make.sh +++ b/data/cvs/make.sh @@ -1,6 +1,7 @@ pkg:setup -pkg:configure --without-gssapi -make +autoreconf -f -i +pkg:configure --without-gssapi cvs_cv_func_printf_ptr=yes --with-external-zlib +make -j8 pkg:install pkg: mkdir -p /etc/profile.d pkg: cp -a %/cvs.sh /etc/profile.d diff --git a/data/cvs/mdns.diff b/data/cvs/mdns.diff deleted file mode 100644 index b11a26a90..000000000 --- a/data/cvs/mdns.diff +++ /dev/null @@ -1,25 +0,0 @@ -diff -ru cvs-1.11.22/src/main.c cvs-1.11.22+iPhone/src/main.c ---- cvs-1.11.22/src/main.c 2006-05-16 03:12:35.000000000 +0000 -+++ cvs-1.11.22+iPhone/src/main.c 2008-02-02 14:50:57.000000000 +0000 -@@ -1,3 +1,5 @@ -+#include <mach-o/nlist.h> -+ - /* - * Copyright (C) 1986-2006 The Free Software Foundation, Inc. - * -@@ -395,6 +397,15 @@ - int argc; - char **argv; - { -+#if !defined(__ENVIRONMENT_ASPEN_VERSION_MIN_REQUIRED__) || __ENVIRONMENT_ASPEN_VERSION_MIN_REQUIRED__ < 10200 -+ struct nlist nl[2]; -+ memset(nl, 0, sizeof(nl)); -+ nl[0].n_un.n_name = (char *) "_useMDNSResponder"; -+ nlist("/usr/lib/libc.dylib", nl); -+ if (nl[0].n_type != N_UNDF) -+ *(int *) nl[0].n_value = 0; -+#endif -+ - cvsroot_t *CVSroot_parsed = NULL; - int cvsroot_update_env = 1; - char *cp, *end; diff --git a/data/cwidget/_metadata/version b/data/cwidget/_metadata/version index 659914ae9..d8aef8135 100644 --- a/data/cwidget/_metadata/version +++ b/data/cwidget/_metadata/version @@ -1 +1 @@ -0.5.8 +0.5.17 diff --git a/data/cwidget/cwidget-0.5.17.tar.xz b/data/cwidget/cwidget-0.5.17.tar.xz Binary files differnew file mode 100644 index 000000000..9c700f175 --- /dev/null +++ b/data/cwidget/cwidget-0.5.17.tar.xz diff --git a/data/cwidget/cwidget-0.5.8.tar.gz b/data/cwidget/cwidget-0.5.8.tar.gz Binary files differdeleted file mode 100644 index 8ef70af3d..000000000 --- a/data/cwidget/cwidget-0.5.8.tar.gz +++ /dev/null diff --git a/data/cwidget/debian/changelog b/data/cwidget/debian/changelog new file mode 100644 index 000000000..187b15997 --- /dev/null +++ b/data/cwidget/debian/changelog @@ -0,0 +1,402 @@ +cwidget (0.5.17-4) unstable; urgency=medium + + * Acknowledge NMU. + * Fix failure with autopkgtest when using g++ 5 (Closes: #795177). + Thanks Martin Pitt. + + -- Manuel A. Fernandez Montecelo <mafm@debian.org> Thu, 13 Aug 2015 14:13:04 +0100 + +cwidget (0.5.17-3.1) unstable; urgency=medium + + * Non-maintainer upload. + * Rename libcwidget3 to libcwidget3v5, libcwidget3 to libcwidget3v5, + follow-up for the libstdc++6 ABI transition. Addresses: #794594. + * Add Conflicts/Replaces for the old packages. + + -- Matthias Klose <doko@debian.org> Tue, 04 Aug 2015 20:46:19 +0200 + +cwidget (0.5.17-3) unstable; urgency=low + + * Changes to build with GCC-5 and in C++11 mode (Closes: #792681). + Thanks Matthias Klose. Prompted by: + - transition to GCC-5 as default compiler in Debian unstable; + - failure to compile cwidget without -std=c++11 with + this new version; + - there is a change in the ABI of libstdc++ w.r.t. GCC < 5, in + std::string, std::list and other parts (sigc++-2.0 is a dependency of + cwidget and uses std::list in the API) + * Quell lintian warning xs-testsuite-header-in-debian-control by + removing XS- prefix in debian/control + * Revamp options passed to the compiler, among others some obsolete + compiler flags that tried to address a problem with old versions of + the compiler, but that were actually not enabled since long ago + * Do not install jquery.js and link it from documentation directories in + another place where it cropped up + * Update Build-Depends-Indep on perlmagick to libimage-magick-perl + (Closes: #789224). Thanks Martin Michlmayr. + + -- Manuel A. Fernandez Montecelo <mafm@debian.org> Fri, 31 Jul 2015 01:10:21 +0100 + +cwidget (0.5.17-2) unstable; urgency=medium + + [ Jérémy Bobbio ] + * Add a patch to have Doxygen not write timestamps in the generated + documentation to allow package builds to be reproducible. (Closes: + #762666) + + [ Manuel A. Fernandez Montecelo ] + * Bump Standards-Version to 3.9.6 (no changes needed) + * Change priority of source package to 'optional' (from 'extra'), and + remove the override of priority 'important' for the binary package + libcwidget3 + + -- Manuel A. Fernandez Montecelo <mafm@debian.org> Sun, 28 Sep 2014 16:03:09 +0100 + +cwidget (0.5.17-1) unstable; urgency=medium + + * New upstream release + - Incorporated changes of last NMUs + - Remove -1.9 from some of the autotools commands, run instead the + latest/default versions of the system (1.9 is quite old by now) + * debian/source/format: move from "1.0" to "3.0 (quilt)" + * debian/compat: level 9 + - Multi-Arch enabled now + * Add tests for autopkgtest + + -- Manuel A. Fernandez Montecelo <mafm@debian.org> Sat, 22 Feb 2014 00:21:23 +0000 + +cwidget (0.5.16-5) unstable; urgency=medium + + * Bump Standards-Version to 3.9.5 (no changes needed) + * Use dh-autoreconf instead of autotools-dev for better new-port + coverage. Thanks Colin Watson for the report and the patch (I applied + it by hand and slightly modified since it didn't apply cleanly). + (Closes: #732539) + * Quell lintian warnings: + - embedded-javascript-library: add Depends on libjs-jquery in the -doc + package, and create a symbolic link instead of install the local copy + of the file "jquery.min.js" + - "binary-control-field-duplicates-source": remove duplicate Priority + field from most of the binary packages + - missing-debian-source-format: add "1.0" to "debian/source/format" + for the time being + - vcs-field-not-canonical + - no-upstream-changelog: upstream's NEWS is the changelog + * In -doc package, downgrade browser from Recommends to Suggests + * VCS changed from 'cwidget/debian/.git' to 'cwidget/cwidget.git' + + -- Manuel A. Fernandez Montecelo <mafm@debian.org> Fri, 21 Feb 2014 18:02:04 +0000 + +cwidget (0.5.16-4) unstable; urgency=medium + + * New maintainer (Closes: #738893) + * Incorporate changes from all previous NMUs + + -- Manuel A. Fernandez Montecelo <mafm@debian.org> Sat, 15 Feb 2014 16:45:15 +0000 + +cwidget (0.5.16-3.5) unstable; urgency=low + + * Non-maintainer upload. + * Support cross-building (thanks, Eleanor Chen; closes: #721357). + * Use the autotools-dev dh addon to update config.guess/config.sub for + arm64 (closes: #725913). + + -- Colin Watson <cjwatson@debian.org> Thu, 14 Nov 2013 10:02:05 +0000 + +cwidget (0.5.16-3.4) unstable; urgency=low + + * Non-maintainer upload. + + [ New translations ] + * Japanese, thanks to Kenshi Muto. (Closes: #675739) + * Chinese (China), thanks to Never Min. + * Russian, thanks to Yuri Kozlov. (Closes: #676247) + * Thai, thanks to Theppitak Karoonboonyanan. (Closes: 676905) + * Brazilian, thanks to Adriano Rafael Gomes. (Closes: 676989) + * Croatian, thanks to Tomislav Krznar. + * All remaining translations from aptitude. + + -- David Prévot <taffit@debian.org> Sun, 17 Jun 2012 15:26:05 -0400 + +cwidget (0.5.16-3.3) unstable; urgency=low + + * Non-maintainer upload. + * Actually display translated strings: cherry-pick c65cae upstream, and use + libcwidget3 as domain name in src/cwidget/generic/util/i18n.h and + po/Makevars; install usr/share/locale files. (Closes: #559738) + * Cursor displayed in proper place for wide-char prompt, thanks to Daniel + Hartwig. (Closes: #316939) + * Pressing 'delete' in search/tree limit dialog delete previous entry + thanks to Samuel Fogh. (Closes: #493320) + + [ New translations ] + * German, thanks to Sven Joachim. (Closes: #561147) + * Spanish, thanks to Omar Campagne. (Closes: #655849) + * French, thanks to Julien Patriarca. (Closes: #655689) + * Polish, thanks to MichaÅ‚ KuÅ‚ach. (Closes: #660944) + * Danish, thanks to Joe Hansen. (Closes: #671762) + * Czech, thanks to Michal Å imůnek. (Closes: #673141) + + -- David Prévot <taffit@debian.org> Sat, 02 Jun 2012 20:33:52 -0400 + +cwidget (0.5.16-3.2) unstable; urgency=low + + * Non maintainer upload. + * Build using hardened build flags. Closes: #656024. + * Fix build failure with GCC-4.7. Closes: #667147. + + -- Matthias Klose <doko@debian.org> Mon, 16 Apr 2012 19:40:07 +0200 + +cwidget (0.5.16-3.1) unstable; urgency=low + + * Non-maintainer upload. + * Don't ship .la files (Closes: #621184). + + -- Luk Claes <luk@debian.org> Sat, 11 Jun 2011 16:31:11 +0200 + +cwidget (0.5.16-3) unstable; urgency=low + + * Disable strict aliasing to prevent g++ from erroring out in the build. + "Fixing" it this way is a horrible hack, but the error message is + entirely incomprehensible, I can't figure out which code, if any, is + at fault here, and my attempts to fix it by phrasing the code + differently have failed. (Closes: #561157, #526674) + + * Add misc:Depends entries on the Depends lines. + + -- Daniel Burrows <dburrows@debian.org> Sun, 17 Jan 2010 14:22:37 -0800 + +cwidget (0.5.16-2) unstable; urgency=low + + * Try a less subtle approach to fixing the threading test cases on hppa. + (Closes: #557982) + + -- Daniel Burrows <dburrows@debian.org> Mon, 30 Nov 2009 15:10:53 -0800 + +cwidget (0.5.16-1) unstable; urgency=low + + * New upstream version. + + -- Daniel Burrows <dburrows@debian.org> Sun, 29 Nov 2009 18:45:42 -0800 + +cwidget (0.5.15-1) unstable; urgency=low + + * New upstream version. + + + Hopefully fixes the FTBFS on hppa (Closes: #546171). + + -- Daniel Burrows <dburrows@debian.org> Sun, 29 Nov 2009 12:50:15 -0800 + +cwidget (0.5.14-1) unstable; urgency=low + + * New upstream version. + + + Fix a divide-by-zero in the column fragment code. (Closes: #556185) + + -- Daniel Burrows <dburrows@debian.org> Tue, 17 Nov 2009 12:33:11 -0800 + +cwidget (0.5.13-1) unstable; urgency=low + + * New upstream version. + + * Move libcwidget3-dbg into the "debug" section as per the new archive + layout. + + * Remove doc/ikiwiki/.ikiwiki in "clean". + + * Add perlmagick to Build-Depends-Indep. (Closes: #497877) + + -- Daniel Burrows <dburrows@debian.org> Sat, 05 Sep 2009 09:46:41 -0700 + +cwidget (0.5.12-4) unstable; urgency=low + + * Backport a fix for a nasty deadlock that was causing aptitude to + freeze up after running dpkg. (Closes: #511708) + + -- Daniel Burrows <dburrows@debian.org> Tue, 27 Jan 2009 23:18:01 -0800 + +cwidget (0.5.12-3) unstable; urgency=low + + * Fix the string truncation fix so that it doesn't enter an infinite + loop and use up all the available memory when the output string is + empty. + + -- Daniel Burrows <dburrows@debian.org> Sat, 06 Sep 2008 16:22:07 -0700 + +cwidget (0.5.12-2) unstable; urgency=low + + * Backport a fix for a string truncation bug from HEAD (Closes: #496119). + + * Fix the URL to the packaging VCS (Closes: #492584). + + -- Daniel Burrows <dburrows@debian.org> Sun, 31 Aug 2008 22:01:53 -0700 + +cwidget (0.5.12-1) unstable; urgency=low + + * New upstream version. + + -- Daniel Burrows <dburrows@debian.org> Sat, 28 Jun 2008 08:58:24 -0700 + +cwidget (0.5.11-1) unstable; urgency=low + + * New upstream version; really fixes the backspacing problem. + + -- Daniel Burrows <dburrows@debian.org> Sat, 12 Apr 2008 08:03:45 -0700 + +cwidget (0.5.10-1) unstable; urgency=low + + * New upstream version. + + - Treat KEY_DC, KEY_BACKSPACE, and character 127 as equivalent in + key_matches(). (Closes: #452651) + + -- Daniel Burrows <dburrows@debian.org> Fri, 11 Apr 2008 22:13:27 -0700 + +cwidget (0.5.9-1) unstable; urgency=low + + * New upstream version. + + - Compiles with libsigc++ version 2.2. + + -- Daniel Burrows <dburrows@debian.org> Fri, 21 Mar 2008 17:03:00 -0700 + +cwidget (0.5.8-2) unstable; urgency=low + + * Upload to unstable. + + * Build-depend on ikiwiki (>= 1.34) for goodstuff. (Closes: #471997) + + * Eliminate the last few missing #includes (in the test cases, + Closes: #461682) + + Note that in order to build or use cwidget with g++-4.3, you will need a + version of libsigc++ that supports g++-4.3 (>= 2.0.18-1). + + * Put the documentation in Programming/C++, not the nonexistant + section Apps/Programming. + + -- Daniel Burrows <dburrows@debian.org> Fri, 21 Mar 2008 14:51:07 -0700 + +cwidget (0.5.8-1) experimental; urgency=low + + * New upstream version. + - ABI change due to the changes below. + - Remove all references to hash_map; use std::map instead. + - Fix all compilation errors with g++ 4.3. (Closes: #461682) + + -- Daniel Burrows <dburrows@debian.org> Sun, 20 Jan 2008 09:37:11 -0800 + +cwidget (0.5.7-1) experimental; urgency=low + + * New Upstream Version. + + * ABI change again; create libcwidget2* packages. + + * Fix several threading errors in handling input, particularly when + cwidget was temporarily suspended and then resumed. + + (Closes: #461342) and possibly more, but I'll have to ask the + reporters. + + * If a byte sequence read from stdin can't be decoded in the current + locale, beep at the user instead of throwing a fatal + exception. (Closes: #460722) + + -- Daniel Burrows <dburrows@debian.org> Sat, 19 Jan 2008 10:26:00 -0800 + +cwidget (0.5.6.1-3) unstable; urgency=low + + * Apply patch from Michael Daenzer to support building with + dpkg-buildpackage -j (Closes: #456678). + + * ikiwiki now depends only on what the core engine needs, and so some of + the plugins that cwidget users are no longer available in a build + environment without explicitly installing them. + + Add libhtml-scrubber-perl to Build-Depends (Closes: #458654). + + -- Daniel Burrows <dburrows@debian.org> Sun, 06 Jan 2008 08:58:49 -0800 + +cwidget (0.5.6.1-2) unstable; urgency=low + + * Rename debian/libcwidget0.install to debian/libcwidget1.install so the + library actually gets installed. + + -- Daniel Burrows <dburrows@debian.org> Sat, 15 Dec 2007 22:24:48 -0800 + +cwidget (0.5.6.1-1) unstable; urgency=low + + * New upstream version. + + * Rename libcwidget0 and libcwidget0-dbg to libcwidget1 and + libcwidget1-dbg. + + * Declare libcwidget-doc to be in section doc, to make lintian happy. + + * No longer conflict/provide/replace libcwidget-dbg; those relationships + were added because libcwidget0-dbg fully replaced libcwidget-dbg, but + libcwidget1-dbg is not related to libcwidget-dbg. + + -- Daniel Burrows <dburrows@debian.org> Sat, 15 Dec 2007 18:46:50 -0800 + +cwidget (0.5.6-1) unstable; urgency=low + + * New upstream version. + + * ABI change; the SONAME is now libcwidget.so.1. + + * If stdin is closed, abort the main loop with an exception instead + of spinning forever. (Closes: #451770) + + * Add a missing #include <stdarg.h>; fixes building on stable and on + some other platforms. (Closes: #452979) + + * Add a build dependency on cppunit so 'make check' does something + useful. + + * Add a build dependency on ikiwiki so we can build all the + documentation. + + -- Daniel Burrows <dburrows@debian.org> Sat, 15 Dec 2007 18:07:37 -0800 + +cwidget (0.5.5-4) unstable; urgency=low + + * Fix a related but different bug in Makefile.am. (Closes: #451400) + + -- Daniel Burrows <dburrows@debian.org> Sat, 24 Nov 2007 21:35:51 -0800 + +cwidget (0.5.5-3) unstable; urgency=low + + * Actually fix Makefile.in. (Closes: #451400) + + * Add Homepage and VCS-* fields to the control file. + + -- Daniel Burrows <dburrows@debian.org> Sat, 24 Nov 2007 08:21:57 -0800 + +cwidget (0.5.5-2) unstable; urgency=low + + * Do a quick fix for a Makefile bug (a better fix is already present in + the upstream repository). (Closes: #451400) + + * Rename the debug package from libcwidget-dbg to libcwidget0-dbg, since + obviously once the soname changes we'll need a separate debug package. + + -- Daniel Burrows <dburrows@debian.org> Mon, 19 Nov 2007 21:08:10 -0800 + +cwidget (0.5.5-1) unstable; urgency=low + + * New upstream release. + + -- Daniel Burrows <dburrows@debian.org> Thu, 15 Nov 2007 21:23:56 -0800 + +cwidget (0.5.4-1) unstable; urgency=low + + * New upstream release. + + -- Daniel Burrows <dburrows@debian.org> Mon, 12 Nov 2007 17:15:18 -0800 + +cwidget (0.5.3-1) unstable; urgency=low + + * Initial release. + + -- Daniel Burrows <dburrows@debian.org> Fri, 09 Nov 2007 07:02:45 -0800 diff --git a/data/cwidget/debian/compat b/data/cwidget/debian/compat new file mode 100644 index 000000000..ec635144f --- /dev/null +++ b/data/cwidget/debian/compat @@ -0,0 +1 @@ +9 diff --git a/data/cwidget/debian/control b/data/cwidget/debian/control new file mode 100644 index 000000000..7928c5cb9 --- /dev/null +++ b/data/cwidget/debian/control @@ -0,0 +1,94 @@ +Source: cwidget +Priority: optional +Section: libs +Homepage: http://cwidget.alioth.debian.org +Vcs-Git: git://anonscm.debian.org/cwidget/cwidget.git +Vcs-Browser: http://anonscm.debian.org/gitweb/?p=cwidget/cwidget.git +Maintainer: Manuel A. Fernandez Montecelo <mafm@debian.org> +Build-Depends: debhelper (>= 9~), + g++ (>= 4:5.2), + dh-autoreconf, + gettext, + libcppunit-dev (>= 1.13.2-2.1), + libncursesw5-dev, + libsigc++-2.0-dev +Build-Depends-Indep: doxygen, + ikiwiki (>= 1.34), + libhtml-scrubber-perl, + libimage-magick-perl +Standards-Version: 3.9.6 +Testsuite: autopkgtest + +Package: libcwidget3v5 +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: ${misc:Depends}, + ${shlibs:Depends} +Suggests: libcwidget-dev +Conflicts: libcwidget3 +Replaces: libcwidget3 +Description: high-level terminal interface library for C++ (runtime files) + libcwidget is a modern user interface library modeled on GTK+ and Qt, + but using curses as its display layer and with widgets that are + tailored to a terminal environment. + . + This package contains the files that are required to run programs + compiled against libcwidget. + +Package: libcwidget3v5-dbg +Section: debug +Priority: extra +Architecture: any +Multi-Arch: same +Depends: ${misc:Depends}, + libcwidget3v5 (= ${binary:Version}) +Suggests: libcwidget-dev +Conflicts: libcwidget3-dbg +Replaces: libcwidget3-dbg +Description: high-level terminal interface library for C++ (debugging files) + libcwidget is a modern user interface library modeled on GTK+ and Qt, + but using curses as its display layer and with widgets that are + tailored to a terminal environment. + . + This package contains debugging symbols for libcwidget-dbg. It is + only needed if you want to generate useful backtraces for programs + using cwidget. + +Package: libcwidget-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Depends: ${misc:Depends}, + libcwidget3v5 (= ${binary:Version}), + libsigc++-2.0-dev, + libncursesw5-dev, + pkg-config +Suggests: libcwidget-doc +Description: high-level terminal interface library for C++ (development files) + libcwidget is a modern user interface library modeled on GTK+ and Qt, + but using curses as its display layer and with widgets that are + tailored to a terminal environment. + . + This package contains files that are needed to write or compile + software that uses libcwidget. + . + WARNING: this is a newly created library whose development is closely + tied to the development of aptitude. Its API may be incomplete and + is likely to change considerably version-over-version! You may want + to avoid cwidget for stable projects. + +Package: libcwidget-doc +Section: doc +Architecture: all +Multi-Arch: foreign +Depends: ${misc:Depends}, + libjs-jquery +Suggests: libcwidget-dev, + iceweasel | www-browser +Description: high-level terminal interface library for C++ (documentation) + libcwidget is a modern user interface library modeled on GTK+ and Qt, + but using curses as its display layer and with widgets that are + tailored to a terminal environment. + . + This package contains documentation for libcwidget, in HTML format. diff --git a/data/cwidget/debian/copyright b/data/cwidget/debian/copyright new file mode 100644 index 000000000..850616e03 --- /dev/null +++ b/data/cwidget/debian/copyright @@ -0,0 +1,5 @@ +Copyright 1999-2007 Daniel Burrows <dburrows@debian.org> + +The upstream Web site for cwidget is http://cwidget.alioth.debian.org + +License: GPL (/usr/share/common-licenses/GPL) diff --git a/data/cwidget/debian/gbp.conf b/data/cwidget/debian/gbp.conf new file mode 100644 index 000000000..69ef158e5 --- /dev/null +++ b/data/cwidget/debian/gbp.conf @@ -0,0 +1,3 @@ +[DEFAULT] +builder = pdebuild --debbuildopts "-i\.git -I.git" +pristine-tar = True diff --git a/data/cwidget/debian/libcwidget-dev.docs b/data/cwidget/debian/libcwidget-dev.docs new file mode 100644 index 000000000..100b93820 --- /dev/null +++ b/data/cwidget/debian/libcwidget-dev.docs @@ -0,0 +1 @@ +README
\ No newline at end of file diff --git a/data/cwidget/debian/libcwidget-dev.install b/data/cwidget/debian/libcwidget-dev.install new file mode 100644 index 000000000..e72f0bac9 --- /dev/null +++ b/data/cwidget/debian/libcwidget-dev.install @@ -0,0 +1,5 @@ +usr/include/cwidget +usr/lib/*/libcwidget.so +usr/lib/*/libcwidget.a +usr/lib/*/pkgconfig +usr/lib/*/cwidget diff --git a/data/cwidget/debian/libcwidget-doc.doc-base b/data/cwidget/debian/libcwidget-doc.doc-base new file mode 100644 index 000000000..6dbff17e5 --- /dev/null +++ b/data/cwidget/debian/libcwidget-doc.doc-base @@ -0,0 +1,12 @@ +Document: cwidget-doc +Title: CWidget API Documentation +Author: Daniel Burrows +Abstract: This documentation, autogenerated by doxygen, describes + the programming interface to the CWidget UI library. CWidget is + a high-level C++ library for programs that provide a terminal-based + user interface. +Section: Programming/C++ + +Format: HTML +Index: /usr/share/doc/libcwidget-doc/html/index.html +Files: /usr/share/doc/libcwidget-doc/html/*.html diff --git a/data/cwidget/debian/libcwidget-doc.docs b/data/cwidget/debian/libcwidget-doc.docs new file mode 100644 index 000000000..0bd3136cd --- /dev/null +++ b/data/cwidget/debian/libcwidget-doc.docs @@ -0,0 +1 @@ +doc/html diff --git a/data/cwidget/debian/libcwidget-doc.links b/data/cwidget/debian/libcwidget-doc.links new file mode 100644 index 000000000..98c26b11b --- /dev/null +++ b/data/cwidget/debian/libcwidget-doc.links @@ -0,0 +1,2 @@ +usr/share/javascript/jquery/jquery.min.js usr/share/doc/libcwidget-doc/html/ikiwiki/jquery.min.js +usr/share/javascript/jquery/jquery.js usr/share/doc/libcwidget-doc/html/documentation/api/jquery.js diff --git a/data/cwidget/debian/libcwidget3v5.install b/data/cwidget/debian/libcwidget3v5.install new file mode 100644 index 000000000..75a620dc3 --- /dev/null +++ b/data/cwidget/debian/libcwidget3v5.install @@ -0,0 +1,2 @@ +usr/lib/*/libcwidget.so.* +usr/share/locale diff --git a/data/cwidget/debian/patches/series b/data/cwidget/debian/patches/series new file mode 100644 index 000000000..ab3c544f4 --- /dev/null +++ b/data/cwidget/debian/patches/series @@ -0,0 +1 @@ +do-not-write-timestamps-in-documentation diff --git a/data/cwidget/debian/rules b/data/cwidget/debian/rules new file mode 100755 index 000000000..44fc573e0 --- /dev/null +++ b/data/cwidget/debian/rules @@ -0,0 +1,38 @@ +#!/usr/bin/make -f + +#export DH_VERBOSE=1 + + +export DEB_CXXFLAGS_MAINT_APPEND := -pipe -Wall -std=c++11 +export DEB_LDFLAGS_MAINT_APPEND := -Wl,--as-needed + + +%: + dh $@ --with autoreconf --parallel + +override_dh_auto_configure: + dh_auto_configure -- --disable-werror $(CROSS_CONFIGURE_OPTIONS) + +override_dh_auto_clean: + -rm -rf doc/ikiwiki/.ikiwiki + dh_auto_clean + +# Build indep overrides +override_dh_auto_build-indep: + $(MAKE) -C doc doc + +override_dh_auto_test-indep: + # No tests needed for docs + +override_dh_auto_install-indep: + $(MAKE) -C doc install + dh_install -i -Xjquery.min.js -Xjquery.js + +override_dh_installchangelogs: + dh_installchangelogs -- NEWS + +override_dh_installexamples: + dh_installexamples -plibcwidget-dev src/cwidget/testcwidget.cc + +override_dh_strip: + dh_strip -a --dbg-package=libcwidget3v5-dbg diff --git a/data/cwidget/debian/source/format b/data/cwidget/debian/source/format new file mode 100644 index 000000000..163aaf8d8 --- /dev/null +++ b/data/cwidget/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/data/cwidget/debian/tests/compile-example-testcwidget b/data/cwidget/debian/tests/compile-example-testcwidget new file mode 100644 index 000000000..a1a5692de --- /dev/null +++ b/data/cwidget/debian/tests/compile-example-testcwidget @@ -0,0 +1,27 @@ +#!/bin/sh + +# Author: Manuel A. Fernandez Montecelo <mafm@debian.org> +# +# autopkgtest check: Build and run a program against the library, to verify that +# the headers and pkg-config file are installed correctly + + +set -e + +WORKDIR=$(mktemp -d) +trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM +cd $WORKDIR + +SRCFILE=testcwidget.cc +SRCFILEGZ=testcwidget.cc.gz +BINFILE=testcwidget + +gunzip -c /usr/share/doc/libcwidget-dev/examples/$SRCFILEGZ > $SRCFILE + +g++ -o $BINFILE $SRCFILE -std=c++11 `pkg-config --cflags --libs cwidget` -I /usr/include/cwidget +echo "build: OK" + +[ -x $BINFILE ] +# interactive, cannot invoke and close from command line +#./$BINFILE +echo "run: OK" diff --git a/data/cwidget/debian/tests/control b/data/cwidget/debian/tests/control new file mode 100644 index 000000000..14cc57793 --- /dev/null +++ b/data/cwidget/debian/tests/control @@ -0,0 +1,2 @@ +Tests: compile-example-testcwidget +Depends: libcwidget-dev, build-essential diff --git a/data/cwidget/lock.diff b/data/cwidget/lock.diff new file mode 100644 index 000000000..54a259938 --- /dev/null +++ b/data/cwidget/lock.diff @@ -0,0 +1,12 @@ +diff -ur cwidget-0.5.17/src/cwidget/toplevel.cc cwidget-0.5.17+iPhone/src/cwidget/toplevel.cc +--- cwidget-0.5.17/src/cwidget/toplevel.cc 2014-02-21 06:00:38.000000000 -1000 ++++ cwidget-0.5.17+iPhone/src/cwidget/toplevel.cc 2018-08-30 17:10:21.000000000 -1000 +@@ -1056,7 +1056,7 @@ + + void updatecursornow() + { +- threads::mutex::lock(get_mutex()); ++ threads::mutex::lock l(get_mutex()); + + if(toplevel->get_cursorvisible()) + { diff --git a/data/cwidget/make.sh b/data/cwidget/make.sh index 01abde691..3e0ff053d 100644 --- a/data/cwidget/make.sh +++ b/data/cwidget/make.sh @@ -1,5 +1,6 @@ pkg:setup -pkg:configure -pkg:make +cp ${PKG_BASE}/config.sub . +CXXFLAGS="-std=c++11 -D_XOPEN_SOURCE_EXTENDED -Wno-error" CFLAGS="-D_XOPEN_SOURCE_EXTENDED" pkg:configure +pkg:make -j8 pkg:install pkg: cp -a cwidget-config.h /usr/include/ diff --git a/data/cwidget/max.diff b/data/cwidget/max.diff new file mode 100644 index 000000000..fc4bcce95 --- /dev/null +++ b/data/cwidget/max.diff @@ -0,0 +1,12 @@ +diff -ur cwidget-0.5.17/src/cwidget/widgets/text_layout.cc cwidget-0.5.17+iPhone/src/cwidget/widgets/text_layout.cc +--- cwidget-0.5.17/src/cwidget/widgets/text_layout.cc 2014-02-21 04:34:52.000000000 -1000 ++++ cwidget-0.5.17+iPhone/src/cwidget/widgets/text_layout.cc 2018-08-30 17:05:02.000000000 -1000 +@@ -86,7 +86,7 @@ + { + freshen_contents(lastst); + if(start > 0) +- set_start(std::max(0, start - mouse_wheel_scroll_lines)); ++ set_start(std::max((unsigned long)0, start - mouse_wheel_scroll_lines)); + } + } + else if((bstate & BUTTON5_PRESSED) != 0) diff --git a/data/cwidget/pod.diff b/data/cwidget/pod.diff new file mode 100644 index 000000000..f88c45713 --- /dev/null +++ b/data/cwidget/pod.diff @@ -0,0 +1,14 @@ +diff -ur cwidget-0.5.17/src/cwidget/curses++.h cwidget-0.5.17+iPhone/src/cwidget/curses++.h +--- cwidget-0.5.17/src/cwidget/curses++.h 2014-02-21 04:34:52.000000000 -1000 ++++ cwidget-0.5.17+iPhone/src/cwidget/curses++.h 2018-08-30 16:30:44.000000000 -1000 +@@ -58,9 +58,7 @@ + */ + attr_t attrs; + +- wchtype() +- { +- } ++ wchtype() = default; + + wchtype(const wchar_t &_ch, const attr_t &_attrs) + :ch(_ch), attrs(_attrs) diff --git a/data/cwidget/pthread.diff b/data/cwidget/pthread.diff new file mode 100644 index 000000000..9c94a2cbb --- /dev/null +++ b/data/cwidget/pthread.diff @@ -0,0 +1,11 @@ +diff -ur cwidget-0.5.17/src/cwidget/generic/threads/threads.h cwidget-0.5.17+iPhone/src/cwidget/generic/threads/threads.h +--- cwidget-0.5.17/src/cwidget/generic/threads/threads.h 2014-02-21 04:34:52.000000000 -1000 ++++ cwidget-0.5.17+iPhone/src/cwidget/generic/threads/threads.h 2018-08-30 16:56:11.000000000 -1000 +@@ -25,6 +25,7 @@ + #ifndef THREADS_H + #define THREADS_H + ++#include <pthread.h> + #include <errno.h> + #include <cwidget/generic/util/exception.h> + diff --git a/data/cwidget/timestamps.diff b/data/cwidget/timestamps.diff new file mode 100644 index 000000000..3b5c25544 --- /dev/null +++ b/data/cwidget/timestamps.diff @@ -0,0 +1,24 @@ +Description: Do not write timestamps in documentation generated by Doxygen + In order to make the build reproducible, we configure Doxygen to skip + writing timestamps in the HTML documentation it generates. +Author: Jérémy Bobbio <lunar@debian.org> +Last-Update: 2014-09-24 + +--- cwidget-0.5.17.orig/Doxyfile.in ++++ cwidget-0.5.17/Doxyfile.in +@@ -699,6 +699,15 @@ HTML_HEADER = + + HTML_FOOTER = + ++# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML ++# page will contain the date and time when the page was generated. Setting this ++# to NO can help when comparing the output of multiple runs. ++# The default value is: YES. ++# This tag requires that the tag GENERATE_HTML is set to YES. ++ ++HTML_TIMESTAMP = NO ++ ++ + # The HTML_STYLESHEET tag can be used to specify a user-defined cascading + # style sheet that is used by each HTML page. It can be used to + # fine-tune the look of the HTML output. If the tag is left blank doxygen diff --git a/data/cwidget/xopen.diff b/data/cwidget/xopen.diff deleted file mode 100644 index d657f7698..000000000 --- a/data/cwidget/xopen.diff +++ /dev/null @@ -1,26 +0,0 @@ -diff -ru cwidget-0.5.8/src/cwidget/curses++.h cwidget-0.5.8+iPhone/src/cwidget/curses++.h ---- cwidget-0.5.8/src/cwidget/curses++.h 2008-01-20 17:37:06.000000000 +0000 -+++ cwidget-0.5.8+iPhone/src/cwidget/curses++.h 2009-07-07 07:28:31.000000000 +0000 -@@ -22,6 +22,9 @@ - #ifndef CURSES_PLUSPLUS_H - #define CURSES_PLUSPLUS_H - -+#define _XOPEN_SOURCE -+#define _XOPEN_SOURCE_EXTENDED 1 -+ - #include <string> - #include <ncursesw/curses.h> - -diff -ru cwidget-0.5.8/src/cwidget/style.h cwidget-0.5.8+iPhone/src/cwidget/style.h ---- cwidget-0.5.8/src/cwidget/style.h 2008-01-20 17:37:06.000000000 +0000 -+++ cwidget-0.5.8+iPhone/src/cwidget/style.h 2009-07-07 07:28:42.000000000 +0000 -@@ -20,6 +20,9 @@ - #ifndef STYLE_H - #define STYLE_H - -+#define _XOPEN_SOURCE -+#define _XOPEN_SOURCE_EXTENDED 1 -+ - #include <ncursesw/curses.h> - - #include <cwidget/curses++.h> diff --git a/data/darwintools/make.sh b/data/darwintools/make.sh index 7294145fd..f7703a23b 100644 --- a/data/darwintools/make.sh +++ b/data/darwintools/make.sh @@ -1,7 +1,7 @@ pkg:setup -"${PKG_TARG}-gcc" -O2 -mthumb -o startupfiletool startupfiletool.c -"${PKG_TARG}-gcc" -O2 -mthumb -o sw_vers sw_vers.c -framework CoreFoundation +"${PKG_TARG}-gcc" -O2 -o startupfiletool startupfiletool.c +"${PKG_TARG}-gcc" -O2 -o sw_vers sw_vers.c -framework CoreFoundation pkg: mkdir -p /usr/{,s}bin pkg: cp -a sw_vers /usr/bin diff --git a/data/debianutils/_metadata/description b/data/debianutils/_metadata/description index 67519a2e9..60275dc03 100644 --- a/data/debianutils/_metadata/description +++ b/data/debianutils/_metadata/description @@ -1 +1 @@ -slower, but better, compression algorithm +pretty much just run-parts. yep? run-parts diff --git a/data/debianutils/_metadata/homepage b/data/debianutils/_metadata/homepage deleted file mode 100644 index 57f36586c..000000000 --- a/data/debianutils/_metadata/homepage +++ /dev/null @@ -1 +0,0 @@ -http://tukaani.org/lzma/ diff --git a/data/debianutils/_metadata/name b/data/debianutils/_metadata/name index a3302a2f0..cce38e605 100644 --- a/data/debianutils/_metadata/name +++ b/data/debianutils/_metadata/name @@ -1 +1 @@ -LZMA Utils +Debian Utilities diff --git a/data/debianutils/_metadata/priority b/data/debianutils/_metadata/priority index fad9e164a..d0b3ce728 100644 --- a/data/debianutils/_metadata/priority +++ b/data/debianutils/_metadata/priority @@ -1 +1 @@ -required ++required diff --git a/data/debianutils/_metadata/role b/data/debianutils/_metadata/role deleted file mode 100644 index 52b4d7301..000000000 --- a/data/debianutils/_metadata/role +++ /dev/null @@ -1 +0,0 @@ -hacker diff --git a/data/debianutils/control b/data/debianutils/control deleted file mode 100644 index 5a3664967..000000000 --- a/data/debianutils/control +++ /dev/null @@ -1,11 +0,0 @@ -Package: debianutils -Essential: yes -Priority: required -Section: Utilities -Installed-Size: 40 -Maintainer: Jay Freeman (saurik) <saurik@saurik.com> -Architecture: iphoneos-arm -Version: 3.3.3ubuntu1-1p -Pre-Depends: dpkg (>= 1.14.25-8) -Description: pretty much just run-parts. yep? run-parts -Name: Debian Utilities diff --git a/data/developer-cmds/make.sh b/data/developer-cmds/make.sh index cc176fdf7..43b80ceeb 100644 --- a/data/developer-cmds/make.sh +++ b/data/developer-cmds/make.sh @@ -1,10 +1,10 @@ pkg:setup pkg: mkdir -p /usr/bin -${PKG_TARG}-gcc -o hexdump/hexdump hexdump/{conv,display,hexdump,hexsyntax,odsyntax,parse}.c -D'__FBSDID(x)=' +${PKG_TARG}-gcc -o hexdump/hexdump hexdump/{conv,display,hexdump,hexsyntax,odsyntax,parse}.c -D'__FBSDID(x)=' -D__DARWIN_C_LEVEL=200112L pkg: cp -a hexdump/hexdump /usr/bin for bin in ctags error rpcgen unifdef; do - ${PKG_TARG}-gcc -o "${bin}/${bin}" "${bin}"/*.c + ${PKG_TARG}-gcc -o "${bin}/${bin}" "${bin}"/*.c -D_POSIX_C_SOURCE=200112L -DS_IREAD=S_IRUSR -DS_IWRITE=S_IWUSR pkg: cp -a "${bin}/${bin}" /usr/bin done diff --git a/data/dict/make.sh b/data/dict/make.sh index d1151073e..d752dac67 100644 --- a/data/dict/make.sh +++ b/data/dict/make.sh @@ -1,4 +1,6 @@ pkg:setup +cp ${PKG_BASE}/config.sub . +cp ${PKG_BASE}/config.sub libmaa/ pkg:configure ac_cv_type_wint_t=yes ac_cv_prog_AR=$(which ${PKG_TARG}-ar) make AR=${PKG_TARG}-ar pkg:install diff --git a/data/diffutils/_metadata/version b/data/diffutils/_metadata/version index dbe590065..d70c8f8d8 100644 --- a/data/diffutils/_metadata/version +++ b/data/diffutils/_metadata/version @@ -1 +1 @@ -2.8.1 +3.6 diff --git a/data/diffutils/diffutils-2.8.1.tar.gz b/data/diffutils/diffutils-2.8.1.tar.gz Binary files differdeleted file mode 100644 index 0ae0a9c7f..000000000 --- a/data/diffutils/diffutils-2.8.1.tar.gz +++ /dev/null diff --git a/data/diffutils/diffutils-3.6.tar.xz b/data/diffutils/diffutils-3.6.tar.xz Binary files differnew file mode 100644 index 000000000..c39680810 --- /dev/null +++ b/data/diffutils/diffutils-3.6.tar.xz diff --git a/data/diffutils/make.sh b/data/diffutils/make.sh index 0a689ba95..96cb7c375 100644 --- a/data/diffutils/make.sh +++ b/data/diffutils/make.sh @@ -1,4 +1,4 @@ pkg:setup pkg:configure -pkg:make +pkg:make -j8 make install prefix="${PKG_DEST}/usr" diff --git a/data/ffmpeg_/armv5.diff b/data/ffmpeg_/armv5.diff deleted file mode 100644 index 87895ba33..000000000 --- a/data/ffmpeg_/armv5.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru ffmpeg-export-2008-05-20/libavcodec/armv4l/mpegvideo_armv5te.c ffmpeg-export-2008-05-20+iPhone/libavcodec/armv4l/mpegvideo_armv5te.c ---- ffmpeg-export-2008-05-20/libavcodec/armv4l/mpegvideo_armv5te.c 2008-05-09 11:56:36.000000000 +0000 -+++ ffmpeg-export-2008-05-20+iPhone/libavcodec/armv4l/mpegvideo_armv5te.c 2008-05-21 08:43:52.000000000 +0000 -@@ -201,7 +201,7 @@ - void MPV_common_init_armv5te(MpegEncContext *s) - { - #ifdef HAVE_DCT_UNQUANTIZE_H263_ARMV5TE_OPTIMIZED -- s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_armv5te; -+ //s->dct_unquantize_h263_intra = dct_unquantize_h263_intra_armv5te; - s->dct_unquantize_h263_inter = dct_unquantize_h263_inter_armv5te; - #endif - } diff --git a/data/ffmpeg_/assembler.diff b/data/ffmpeg_/assembler.diff deleted file mode 100644 index 83e63a837..000000000 --- a/data/ffmpeg_/assembler.diff +++ /dev/null @@ -1,538 +0,0 @@ -diff -ru ffmpeg-export-2008-02-26/libavcodec/armv4l/dsputil_arm_s.S ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/dsputil_arm_s.S ---- ffmpeg-export-2008-02-26/libavcodec/armv4l/dsputil_arm_s.S 2007-09-05 11:05:33.000000000 +0000 -+++ ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/dsputil_arm_s.S 2008-05-20 09:05:01.000000000 +0000 -@@ -72,8 +72,8 @@ - - @ ---------------------------------------------------------------- - .align 8 -- .global put_pixels16_arm --put_pixels16_arm: -+ .global _put_pixels16_arm -+_put_pixels16_arm: - @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) - @ block = word aligned, pixles = unaligned - pld [r1] -@@ -134,8 +134,8 @@ - - @ ---------------------------------------------------------------- - .align 8 -- .global put_pixels8_arm --put_pixels8_arm: -+ .global _put_pixels8_arm -+_put_pixels8_arm: - @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) - @ block = word aligned, pixles = unaligned - pld [r1] -@@ -196,8 +196,8 @@ - - @ ---------------------------------------------------------------- - .align 8 -- .global put_pixels8_x2_arm --put_pixels8_x2_arm: -+ .global _put_pixels8_x2_arm -+_put_pixels8_x2_arm: - @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) - @ block = word aligned, pixles = unaligned - pld [r1] -@@ -265,8 +265,8 @@ - .word 4b - - .align 8 -- .global put_no_rnd_pixels8_x2_arm --put_no_rnd_pixels8_x2_arm: -+ .global _put_no_rnd_pixels8_x2_arm -+_put_no_rnd_pixels8_x2_arm: - @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) - @ block = word aligned, pixles = unaligned - pld [r1] -@@ -336,8 +336,8 @@ - - @ ---------------------------------------------------------------- - .align 8 -- .global put_pixels8_y2_arm --put_pixels8_y2_arm: -+ .global _put_pixels8_y2_arm -+_put_pixels8_y2_arm: - @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) - @ block = word aligned, pixles = unaligned - pld [r1] -@@ -445,8 +445,8 @@ - .word 4b - - .align 8 -- .global put_no_rnd_pixels8_y2_arm --put_no_rnd_pixels8_y2_arm: -+ .global _put_no_rnd_pixels8_y2_arm -+_put_no_rnd_pixels8_y2_arm: - @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) - @ block = word aligned, pixles = unaligned - pld [r1] -@@ -618,8 +618,8 @@ - .endm - - .align 8 -- .global put_pixels8_xy2_arm --put_pixels8_xy2_arm: -+ .global _put_pixels8_xy2_arm -+_put_pixels8_xy2_arm: - @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) - @ block = word aligned, pixles = unaligned - pld [r1] -@@ -654,8 +654,8 @@ - .word 0x0F0F0F0F - - .align 8 -- .global put_no_rnd_pixels8_xy2_arm --put_no_rnd_pixels8_xy2_arm: -+ .global _put_no_rnd_pixels8_xy2_arm -+_put_no_rnd_pixels8_xy2_arm: - @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) - @ block = word aligned, pixles = unaligned - pld [r1] -diff -ru ffmpeg-export-2008-02-26/libavcodec/armv4l/jrevdct_arm.S ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/jrevdct_arm.S ---- ffmpeg-export-2008-02-26/libavcodec/armv4l/jrevdct_arm.S 2005-12-22 01:10:11.000000000 +0000 -+++ ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/jrevdct_arm.S 2008-05-20 09:03:43.000000000 +0000 -@@ -54,8 +54,8 @@ - .text - .align - -- .global j_rev_dct_ARM --j_rev_dct_ARM: -+ .global _j_rev_dct_ARM -+_j_rev_dct_ARM: - stmdb sp!, { r4 - r12, lr } @ all callee saved regs - - sub sp, sp, #4 @ reserve some space on the stack -diff -ru ffmpeg-export-2008-02-26/libavcodec/armv4l/simple_idct_arm.S ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/simple_idct_arm.S ---- ffmpeg-export-2008-02-26/libavcodec/armv4l/simple_idct_arm.S 2007-12-02 15:43:08.000000000 +0000 -+++ ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/simple_idct_arm.S 2008-05-20 09:03:13.000000000 +0000 -@@ -54,9 +54,9 @@ - - .text - .align -- .global simple_idct_ARM -+ .global _simple_idct_ARM - --simple_idct_ARM: -+_simple_idct_ARM: - @@ void simple_idct_ARM(int16_t *block) - @@ save stack for reg needed (take all of them), - @@ R0-R3 are scratch regs, so no need to save them, but R0 contains the pointer to block -diff -ru ffmpeg-export-2008-02-26/libavcodec/armv4l/simple_idct_armv5te.S ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/simple_idct_armv5te.S ---- ffmpeg-export-2008-02-26/libavcodec/armv4l/simple_idct_armv5te.S 2007-07-05 20:08:51.000000000 +0000 -+++ ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/simple_idct_armv5te.S 2008-05-20 09:02:30.000000000 +0000 -@@ -42,9 +42,9 @@ - w57: .long W57 - - .align -- .type idct_row_armv5te, %function -- .func idct_row_armv5te --idct_row_armv5te: -+ @.type idct_row_armv5te, %function -+ @.func idct_row_armv5te -+_idct_row_armv5te: - str lr, [sp, #-4]! - - ldrd v1, [a1, #8] -@@ -148,7 +148,7 @@ - strd a3, [a1, #8] - - ldr pc, [sp], #4 -- .endfunc -+ @.endfunc - - .macro idct_col - ldr a4, [a1] /* a4 = col[1:0] */ -@@ -263,9 +263,9 @@ - .endm - - .align -- .type idct_col_armv5te, %function -- .func idct_col_armv5te --idct_col_armv5te: -+ @.type idct_col_armv5te, %function -+ @.func idct_col_armv5te -+_idct_col_armv5te: - str lr, [sp, #-4]! - - idct_col -@@ -335,12 +335,12 @@ - str a2, [a1, #(16*4)] - - ldr pc, [sp], #4 -- .endfunc -+ @.endfunc - - .align -- .type idct_col_put_armv5te, %function -- .func idct_col_put_armv5te --idct_col_put_armv5te: -+ @.type idct_col_put_armv5te, %function -+ @.func idct_col_put_armv5te -+_idct_col_put_armv5te: - str lr, [sp, #-4]! - - idct_col -@@ -455,12 +455,12 @@ - strh a2, [v2, -lr] - - ldr pc, [sp], #4 -- .endfunc -+ @.endfunc - - .align -- .type idct_col_add_armv5te, %function -- .func idct_col_add_armv5te --idct_col_add_armv5te: -+ @.type idct_col_add_armv5te, %function -+ @.func idct_col_add_armv5te -+_idct_col_add_armv5te: - str lr, [sp, #-4]! - - idct_col -@@ -608,118 +608,118 @@ - strh a2, [v2] - - ldr pc, [sp], #4 -- .endfunc -+ @.endfunc - - .align -- .global simple_idct_armv5te -- .type simple_idct_armv5te, %function -- .func simple_idct_armv5te --simple_idct_armv5te: -+ .global _simple_idct_armv5te -+ @.type simple_idct_armv5te, %function -+ @.func simple_idct_armv5te -+_simple_idct_armv5te: - stmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, lr} - -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - - sub a1, a1, #(16*7) - -- bl idct_col_armv5te -+ bl _idct_col_armv5te - add a1, a1, #4 -- bl idct_col_armv5te -+ bl _idct_col_armv5te - add a1, a1, #4 -- bl idct_col_armv5te -+ bl _idct_col_armv5te - add a1, a1, #4 -- bl idct_col_armv5te -+ bl _idct_col_armv5te - - ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} -- .endfunc -+ @.endfunc - - .align -- .global simple_idct_add_armv5te -- .type simple_idct_add_armv5te, %function -- .func simple_idct_add_armv5te --simple_idct_add_armv5te: -+ .global _simple_idct_add_armv5te -+ @.type simple_idct_add_armv5te, %function -+ @.func simple_idct_add_armv5te -+_simple_idct_add_armv5te: - stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} - - mov a1, a3 - -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - - sub a1, a1, #(16*7) - -- bl idct_col_add_armv5te -+ bl _idct_col_add_armv5te - add a1, a1, #4 -- bl idct_col_add_armv5te -+ bl _idct_col_add_armv5te - add a1, a1, #4 -- bl idct_col_add_armv5te -+ bl _idct_col_add_armv5te - add a1, a1, #4 -- bl idct_col_add_armv5te -+ bl _idct_col_add_armv5te - - add sp, sp, #8 - ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} -- .endfunc -+ @.endfunc - - .align -- .global simple_idct_put_armv5te -- .type simple_idct_put_armv5te, %function -- .func simple_idct_put_armv5te --simple_idct_put_armv5te: -+ .global _simple_idct_put_armv5te -+ @.type simple_idct_put_armv5te, %function -+ @.func simple_idct_put_armv5te -+_simple_idct_put_armv5te: - stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} - - mov a1, a3 - -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - add a1, a1, #16 -- bl idct_row_armv5te -+ bl _idct_row_armv5te - - sub a1, a1, #(16*7) - -- bl idct_col_put_armv5te -+ bl _idct_col_put_armv5te - add a1, a1, #4 -- bl idct_col_put_armv5te -+ bl _idct_col_put_armv5te - add a1, a1, #4 -- bl idct_col_put_armv5te -+ bl _idct_col_put_armv5te - add a1, a1, #4 -- bl idct_col_put_armv5te -+ bl _idct_col_put_armv5te - - add sp, sp, #8 - ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} -- .endfunc -+ @.endfunc -diff -ru ffmpeg-export-2008-02-26/libavcodec/armv4l/simple_idct_armv6.S ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/simple_idct_armv6.S ---- ffmpeg-export-2008-02-26/libavcodec/armv4l/simple_idct_armv6.S 2007-07-05 20:08:51.000000000 +0000 -+++ ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/simple_idct_armv6.S 2008-05-20 09:01:50.000000000 +0000 -@@ -191,9 +191,9 @@ - a2 = dest - */ - .align -- .type idct_row_armv6, %function -- .func idct_row_armv6 --idct_row_armv6: -+ @.type idct_row_armv6, %function -+ @.func idct_row_armv6 -+_idct_row_armv6: - str lr, [sp, #-4]! - - ldr lr, [a1, #12] /* lr = row[7,5] */ -@@ -238,7 +238,7 @@ - strh a3, [a2, #(16*5)] - strh a3, [a2, #(16*7)] - ldr pc, [sp], #4 -- .endfunc -+ @.endfunc - - /* - Compute IDCT of single column, read as row. -@@ -246,9 +246,9 @@ - a2 = dest - */ - .align -- .type idct_col_armv6, %function -- .func idct_col_armv6 --idct_col_armv6: -+ @.type idct_col_armv6, %function -+ @.func idct_col_armv6 -+_idct_col_armv6: - stmfd sp!, {a2, lr} - - ldr a3, [a1] /* a3 = row[2,0] */ -@@ -268,7 +268,7 @@ - strh v5, [a2, #(16*7)] - - ldr pc, [sp], #4 -- .endfunc -+ @.endfunc - - /* - Compute IDCT of single column, read as row, store saturated 8-bit. -@@ -277,9 +277,9 @@ - a3 = line size - */ - .align -- .type idct_col_put_armv6, %function -- .func idct_col_put_armv6 --idct_col_put_armv6: -+ @.type idct_col_put_armv6, %function -+ @.func idct_col_put_armv6 -+_idct_col_put_armv6: - stmfd sp!, {a2, a3, lr} - - ldr a3, [a1] /* a3 = row[2,0] */ -@@ -301,7 +301,7 @@ - sub a2, a2, a3, lsl #3 - - ldr pc, [sp], #4 -- .endfunc -+ @.endfunc - - /* - Compute IDCT of single column, read as row, add/store saturated 8-bit. -@@ -310,9 +310,9 @@ - a3 = line size - */ - .align -- .type idct_col_add_armv6, %function -- .func idct_col_add_armv6 --idct_col_add_armv6: -+ @.type idct_col_add_armv6, %function -+ @.func idct_col_add_armv6 -+_idct_col_add_armv6: - stmfd sp!, {a2, a3, lr} - - ldr a3, [a1] /* a3 = row[2,0] */ -@@ -359,7 +359,7 @@ - sub a2, a2, a3, lsl #3 - - ldr pc, [sp], #4 -- .endfunc -+ @.endfunc - - /* - Compute 8 IDCT row transforms. -@@ -394,62 +394,62 @@ - .endm - - .align -- .global ff_simple_idct_armv6 -- .type ff_simple_idct_armv6, %function -- .func ff_simple_idct_armv6 -+ .global _ff_simple_idct_armv6 -+ @.type ff_simple_idct_armv6, %function -+ @.func ff_simple_idct_armv6 - /* void ff_simple_idct_armv6(DCTELEM *data); */ --ff_simple_idct_armv6: -+_ff_simple_idct_armv6: - stmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, lr} - sub sp, sp, #128 - - mov a2, sp -- idct_rows idct_row_armv6, 2 -+ idct_rows _idct_row_armv6, 2 - mov a2, a1 - mov a1, sp -- idct_rows idct_col_armv6, 2 -+ idct_rows _idct_col_armv6, 2 - - add sp, sp, #128 - ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} -- .endfunc -+ @.endfunc - - .align -- .global ff_simple_idct_add_armv6 -- .type ff_simple_idct_add_armv6, %function -- .func ff_simple_idct_add_armv6 -+ .global _ff_simple_idct_add_armv6 -+ @.type ff_simple_idct_add_armv6, %function -+ @.func ff_simple_idct_add_armv6 - /* ff_simple_idct_add_armv6(uint8_t *dest, int line_size, DCTELEM *data); */ --ff_simple_idct_add_armv6: -+_ff_simple_idct_add_armv6: - stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} - sub sp, sp, #128 - - mov a1, a3 - mov a2, sp -- idct_rows idct_row_armv6, 2 -+ idct_rows _idct_row_armv6, 2 - mov a1, sp - ldr a2, [sp, #128] - ldr a3, [sp, #(128+4)] -- idct_rows idct_col_add_armv6, 1 -+ idct_rows _idct_col_add_armv6, 1 - - add sp, sp, #(128+8) - ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} -- .endfunc -+ @.endfunc - - .align -- .global ff_simple_idct_put_armv6 -- .type ff_simple_idct_put_armv6, %function -- .func ff_simple_idct_put_armv6 -+ .global _ff_simple_idct_put_armv6 -+ @.type ff_simple_idct_put_armv6, %function -+ @.func ff_simple_idct_put_armv6 - /* ff_simple_idct_put_armv6(uint8_t *dest, int line_size, DCTELEM *data); */ --ff_simple_idct_put_armv6: -+_ff_simple_idct_put_armv6: - stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} - sub sp, sp, #128 - - mov a1, a3 - mov a2, sp -- idct_rows idct_row_armv6, 2 -+ idct_rows _idct_row_armv6, 2 - mov a1, sp - ldr a2, [sp, #128] - ldr a3, [sp, #(128+4)] -- idct_rows idct_col_put_armv6, 1 -+ idct_rows _idct_col_put_armv6, 1 - - add sp, sp, #(128+8) - ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} -- .endfunc -+ @.endfunc diff --git a/data/ffmpeg_/ffmpeg-4.0.2.tar.gz b/data/ffmpeg_/ffmpeg-4.0.2.tar.gz Binary files differnew file mode 100644 index 000000000..6deabe048 --- /dev/null +++ b/data/ffmpeg_/ffmpeg-4.0.2.tar.gz diff --git a/data/ffmpeg_/ffmpeg-export-snapshot.tar.bz2 b/data/ffmpeg_/ffmpeg-export-snapshot.tar.bz2 Binary files differdeleted file mode 100644 index 56cf50555..000000000 --- a/data/ffmpeg_/ffmpeg-export-snapshot.tar.bz2 +++ /dev/null diff --git a/data/ffmpeg_/make.sh b/data/ffmpeg_/make.sh index f16f6f208..1760afb65 100644 --- a/data/ffmpeg_/make.sh +++ b/data/ffmpeg_/make.sh @@ -1,13 +1,12 @@ pkg:setup -./configure \ +ARCH=$(echo ${PKG_TARG} | sed -e s/'-.*'//) +./configure --arch=${ARCH} \ --prefix=/usr --enable-gpl --enable-postproc --enable-swscale \ - --disable-vhook --enable-avfilter --enable-avfilter-lavf \ + --enable-avfilter \ --enable-cross-compile --cross-prefix=${PKG_TARG}- --target-os=darwin \ - --arch=arm --disable-iwmmxt --enable-armv5te --enable-armv6 \ --disable-static --enable-shared --disable-debug --disable-stripping \ - --enable-libfaac \ - --enable-libfaad \ + --enable-libfdk-aac \ --enable-libmp3lame \ - --enable-libvorbis + --enable-libvorbis --enable-nonfree make pkg:install diff --git a/data/ffmpeg_/mjpega.diff b/data/ffmpeg_/mjpega.diff deleted file mode 100644 index c82baa8d3..000000000 --- a/data/ffmpeg_/mjpega.diff +++ /dev/null @@ -1,32 +0,0 @@ -diff -ru ffmpeg-export-2008-05-20/libavcodec/mjpega_dump_header_bsf.c ffmpeg-export-2008-05-20+iPhone/libavcodec/mjpega_dump_header_bsf.c ---- ffmpeg-export-2008-05-20/libavcodec/mjpega_dump_header_bsf.c 2007-05-19 00:53:41.000000000 +0000 -+++ ffmpeg-export-2008-05-20+iPhone/libavcodec/mjpega_dump_header_bsf.c 2008-06-02 02:56:08.000000000 +0000 -@@ -56,15 +56,24 @@ - bytestream_put_be32(&poutbufp, buf_size + 44); /* pad field size */ - bytestream_put_be32(&poutbufp, 0); /* next ptr */ - -+ uint32_t dqt = 0, dht = 0, sof0 = 0; -+ - for (i = 0; i < buf_size - 1; i++) { - if (buf[i] == 0xff) { - switch (buf[i + 1]) { -- case DQT: /* quant off */ -- case DHT: /* huff off */ -- case SOF0: /* image off */ -- bytestream_put_be32(&poutbufp, i + 46); -+ case DQT: -+ dqt = i + 46; -+ break; -+ case DHT: -+ dht = i + 46; -+ break; -+ case SOF0: -+ sof0 = i + 46; - break; - case SOS: -+ bytestream_put_be32(&poutbufp, dqt); /* quant off */ -+ bytestream_put_be32(&poutbufp, dht); /* huff off */ -+ bytestream_put_be32(&poutbufp, sof0); /* image off */ - bytestream_put_be32(&poutbufp, i + 46); /* scan off */ - bytestream_put_be32(&poutbufp, i + 46 + AV_RB16(buf + i + 2)); /* data off */ - bytestream_put_buffer(&poutbufp, buf + 2, buf_size - 2); /* skip already written SOI */ diff --git a/data/ffmpeg_/r7.diff b/data/ffmpeg_/r7.diff deleted file mode 100644 index 3b1af70fb..000000000 --- a/data/ffmpeg_/r7.diff +++ /dev/null @@ -1,48 +0,0 @@ -diff -ru ffmpeg-export-2008-05-20/libavcodec/armv4l/float_arm_vfp.c ffmpeg-export-2008-05-20+iPhone/libavcodec/armv4l/float_arm_vfp.c ---- ffmpeg-export-2008-05-20/libavcodec/armv4l/float_arm_vfp.c 2008-05-11 20:06:03.000000000 +0000 -+++ ffmpeg-export-2008-05-20+iPhone/libavcodec/armv4l/float_arm_vfp.c 2008-05-21 00:44:04.000000000 +0000 -@@ -141,6 +141,13 @@ - }
-
- #ifdef HAVE_ARMV6
-+
-+#ifdef __APPLE__
-+#define r7 "r9"
-+#else
-+#define r7 "r7"
-+#endif
-+
- /**
- * ARM VFP optimized float to int16 conversion.
- * Assume that len is a positive number and is multiple of 8, destination
-@@ -163,7 +170,7 @@ - "subs %[len], %[len], #8\n\t"
- "fmrrs r3, r4, {s0, s1}\n\t"
- "fmrrs r5, r6, {s2, s3}\n\t"
-- "fmrrs r7, r8, {s4, s5}\n\t"
-+ "fmrrs "r7", r8, {s4, s5}\n\t"
- "fmrrs ip, lr, {s6, s7}\n\t"
- "fldmiasgt %[src]!, {s16-s23}\n\t"
- "ssat r4, #16, r4\n\t"
-@@ -181,10 +188,10 @@ - "ftosisgt s6, s22\n\t"
- "ftosisgt s7, s23\n\t"
- "ssat r8, #16, r8\n\t"
-- "ssat r7, #16, r7\n\t"
-+ "ssat "r7", #16, "r7"\n\t"
- "ssat lr, #16, lr\n\t"
- "ssat ip, #16, ip\n\t"
-- "pkhbt r5, r7, r8, lsl #16\n\t"
-+ "pkhbt r5, "r7", r8, lsl #16\n\t"
- "pkhbt r6, ip, lr, lsl #16\n\t"
- "stmia %[dst]!, {r3-r6}\n\t"
- "bgt 1b\n\t"
-@@ -193,7 +200,7 @@ - :
- : "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7",
- "s16", "s17", "s18", "s19", "s20", "s21", "s22", "s23",
-- "r3", "r4", "r5", "r6", "r7", "r8", "ip", "lr",
-+ "r3", "r4", "r5", "r6", r7, "r8", "ip", "lr",
- "cc", "memory");
- }
- #endif
diff --git a/data/ffmpeg_/timestamp.diff b/data/ffmpeg_/timestamp.diff deleted file mode 100644 index 266e7d614..000000000 --- a/data/ffmpeg_/timestamp.diff +++ /dev/null @@ -1,11 +0,0 @@ -diff -ru ffmpeg-export-2008-05-20/cmdutils.c ffmpeg-export-2008-05-20+iPhone/cmdutils.c ---- ffmpeg-export-2008-05-20/cmdutils.c 2008-05-09 11:56:36.000000000 +0000 -+++ ffmpeg-export-2008-05-20+iPhone/cmdutils.c 2008-06-19 04:35:45.000000000 +0000 -@@ -206,7 +206,6 @@ - #if ENABLE_AVFILTER - fprintf(stderr, " libavfilter version: " AV_STRINGIFY(LIBAVFILTER_VERSION) "\n"); - #endif -- fprintf(stderr, " built on " __DATE__ " " __TIME__); - #ifdef __GNUC__ - fprintf(stderr, ", gcc: " __VERSION__ "\n"); - #else diff --git a/data/ffmpeg_/version.diff b/data/ffmpeg_/version.diff deleted file mode 100644 index 4670687d1..000000000 --- a/data/ffmpeg_/version.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru ffmpeg-export-2008-05-20/configure ffmpeg-export-2008-05-20+iPhone/configure ---- ffmpeg-export-2008-05-20/configure 2008-05-16 16:12:55.000000000 +0000 -+++ ffmpeg-export-2008-05-20+iPhone/configure 2008-09-22 08:28:33.000000000 +0000 -@@ -1212,7 +1212,7 @@ - ;; - darwin) - disable need_memalign -- SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR) -Wl,-read_only_relocs,suppress' -+ SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME) -Wl,-read_only_relocs,suppress' - VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(SHLIBDIR)/vhook/$$(@F)' - strip="strip -x" - FFLDFLAGS="-Wl,-dynamic,-search_paths_first" diff --git a/data/flac/_metadata/version b/data/flac/_metadata/version index 6085e9465..1892b9267 100644 --- a/data/flac/_metadata/version +++ b/data/flac/_metadata/version @@ -1 +1 @@ -1.2.1 +1.3.2 diff --git a/data/flac/flac-1.2.1.tar.gz b/data/flac/flac-1.2.1.tar.gz Binary files differdeleted file mode 100644 index 80d26fdcb..000000000 --- a/data/flac/flac-1.2.1.tar.gz +++ /dev/null diff --git a/data/flac/flac-1.3.2.tar.xz b/data/flac/flac-1.3.2.tar.xz Binary files differnew file mode 100644 index 000000000..5b9c69afd --- /dev/null +++ b/data/flac/flac-1.3.2.tar.xz diff --git a/data/flac/make.sh b/data/flac/make.sh index 87c264adb..e3c706eb1 100644 --- a/data/flac/make.sh +++ b/data/flac/make.sh @@ -1,4 +1,4 @@ pkg:setup pkg:configure --with-ogg="$(PKG_DEST_ ogg)" -make +make -j8 pkg:install diff --git a/data/gcrypt/gcrypt b/data/gcrypt/gcrypt new file mode 120000 index 000000000..0a21c7b07 --- /dev/null +++ b/data/gcrypt/gcrypt @@ -0,0 +1 @@ +../../gcrypt
\ No newline at end of file diff --git a/data/gettext/make.sh b/data/gettext/make.sh index 47812a40f..a7c62f3cb 100644 --- a/data/gettext/make.sh +++ b/data/gettext/make.sh @@ -1,5 +1,5 @@ pkg:setup pkg:configure --disable-java --without-libintl-prefix -make +make -j8 pkg:install pkg: rm -rf /usr/share diff --git a/data/gnupg/_metadata/description b/data/gnupg/_metadata/description index 72bfbf994..c55bd894d 100644 --- a/data/gnupg/_metadata/description +++ b/data/gnupg/_metadata/description @@ -1 +1 @@ -newer encryption compatible with OpenPGP +older encryption compatible with OpenPGP diff --git a/data/gnupg/_metadata/priority b/data/gnupg/_metadata/priority index 134d9bc32..fad9e164a 100644 --- a/data/gnupg/_metadata/priority +++ b/data/gnupg/_metadata/priority @@ -1 +1 @@ -optional +required diff --git a/data/gnutls/make.sh b/data/gnutls/make.sh index 9bbfb41dc..0db47e445 100644 --- a/data/gnutls/make.sh +++ b/data/gnutls/make.sh @@ -1,5 +1,7 @@ pkg:setup autoreconf -f -i -pkg:configure --with-included-libtasn1 -make -pkg:install +pkg:configure --with-included-libtasn1 --without-libiconv-prefix --without-libintl-prefix --without-libseccomp-prefix \ + --without-libcrypto-prefix --without-librt-prefix --without-libpthread-prefix --without-libnsl-prefix \ + --without-libunistring-prefix --without-libdl-prefix --without-libz-prefix P11_KIT_LIBS="-lp11-kit" +make -j8 V=1 +pkg:install V=1 diff --git a/data/grep/make.sh b/data/grep/make.sh index 21ddfb614..eda88f015 100644 --- a/data/grep/make.sh +++ b/data/grep/make.sh @@ -1,4 +1,4 @@ pkg:setup pkg:configure --disable-perl-regexp --bindir=/bin ac_use_included_regex=no -make +make -j8 pkg:install diff --git a/data/htop/_metadata/ncurses.ver.iphoneos-arm b/data/htop/_metadata/ncurses.ver.iphoneos-arm index cc40bca69..e0ea36fee 100644 --- a/data/htop/_metadata/ncurses.ver.iphoneos-arm +++ b/data/htop/_metadata/ncurses.ver.iphoneos-arm @@ -1 +1 @@ -8.0 +6.0 diff --git a/data/htop/_metadata/ncurses.ver.iphoneos-arm64 b/data/htop/_metadata/ncurses.ver.iphoneos-arm64 deleted file mode 100644 index cc40bca69..000000000 --- a/data/htop/_metadata/ncurses.ver.iphoneos-arm64 +++ /dev/null @@ -1 +0,0 @@ -8.0 diff --git a/data/htop/make.sh b/data/htop/make.sh index be58dce3d..e9580110b 100644 --- a/data/htop/make.sh +++ b/data/htop/make.sh @@ -2,3 +2,4 @@ pkg:setup pkg:configure HTOP_NCURSESW6_CONFIG_SCRIPT="${PKG_DATA}/ncursesw6-config" --disable-linux-affinity pkg:make -j8 pkg:install +pkg: rm -rf /usr/share diff --git a/data/indent/_metadata/version b/data/indent/_metadata/version index a6333e400..0d3ad67af 100644 --- a/data/indent/_metadata/version +++ b/data/indent/_metadata/version @@ -1 +1 @@ -2.2.9 +2.2.10 diff --git a/data/indent/docs.diff b/data/indent/docs.diff new file mode 100644 index 000000000..9f5b121f5 --- /dev/null +++ b/data/indent/docs.diff @@ -0,0 +1,43 @@ +diff -ur indent-2.2.10/Makefile.am indent-2.2.10+iPhone/Makefile.am +--- indent-2.2.10/Makefile.am 2008-03-11 08:50:42.000000000 -1000 ++++ indent-2.2.10+iPhone/Makefile.am 2018-09-04 09:52:21.000000000 -1000 +@@ -1,7 +1,7 @@ + ## Process this file with automake to produce Makefile.in + AUTOMAKE_OPTIONS = no-texinfo.tex + +-SUBDIRS = intl src doc po man ++SUBDIRS = intl src po + + BUILT_SOURCES = + +@@ -19,18 +19,6 @@ + + DISTCLEANFILES=config/config.cache config/config.log config.h + +-ps: +- cd doc && $(MAKE) @PACKAGE@.ps +- +-pdf: +- cd doc && $(MAKE) @PACKAGE@.pdf +- +-html: +- cd doc && $(MAKE) html +- +-html-split: +- cd doc && $(MAKE) html-split +- + # --------------- Maintainer's Section + + MAINTAINERCLEANFILES = intl/* aclocal.m4 Makefile.in config.h.in stamp-h1 stamp-h.in configure \ +diff -ur indent-2.2.10/configure.ac indent-2.2.10+iPhone/configure.ac +--- indent-2.2.10/configure.ac 2008-03-11 08:50:42.000000000 -1000 ++++ indent-2.2.10+iPhone/configure.ac 2018-09-04 09:55:34.000000000 -1000 +@@ -63,8 +63,6 @@ + po/Makefile.in + Makefile + src/Makefile +- doc/Makefile +- man/Makefile + ], + [touch Makefile.in]) + diff --git a/data/indent/indent-2.2.10.tar.gz b/data/indent/indent-2.2.10.tar.gz Binary files differnew file mode 100644 index 000000000..8c054ef6f --- /dev/null +++ b/data/indent/indent-2.2.10.tar.gz diff --git a/data/indent/indent-2.2.9.tar.gz b/data/indent/indent-2.2.9.tar.gz Binary files differdeleted file mode 100644 index 154636662..000000000 --- a/data/indent/indent-2.2.9.tar.gz +++ /dev/null diff --git a/data/indent/make.sh b/data/indent/make.sh index 11d339a61..f24f8a191 100644 --- a/data/indent/make.sh +++ b/data/indent/make.sh @@ -1,7 +1,5 @@ pkg:setup +autoreconf -f -i pkg:configure -cd man -make CC=gcc -cd .. -make +make -j8 pkg:install diff --git a/data/indent/static.diff b/data/indent/static.diff deleted file mode 100644 index 485f33555..000000000 --- a/data/indent/static.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru indent-2.2.9/src/indent.h indent-2.2.9+iPhone/src/indent.h ---- indent-2.2.9/src/indent.h 2002-11-10 21:02:48.000000000 +0000 -+++ indent-2.2.9+iPhone/src/indent.h 2008-01-01 23:08:20.000000000 +0000 -@@ -96,8 +96,6 @@ - /* Size of the input program, not including the ' \n\0' we add at the end */ - extern unsigned long in_prog_size; - --/* The output file. */ --extern FILE *output; - - - diff --git a/data/inetutils/_metadata/version b/data/inetutils/_metadata/version index 810ee4e91..d615fd0c0 100644 --- a/data/inetutils/_metadata/version +++ b/data/inetutils/_metadata/version @@ -1 +1 @@ -1.6 +1.9.4 diff --git a/data/inetutils/docs.diff b/data/inetutils/docs.diff new file mode 100644 index 000000000..0bb0ccb30 --- /dev/null +++ b/data/inetutils/docs.diff @@ -0,0 +1,22 @@ +diff -ur inetutils-1.9.4/Makefile.am inetutils-1.9.4+iPhone/Makefile.am +--- inetutils-1.9.4/Makefile.am 2015-06-08 21:45:35.000000000 -1000 ++++ inetutils-1.9.4+iPhone/Makefile.am 2018-08-17 15:13:33.000000000 -1000 +@@ -25,7 +25,6 @@ + SUBDIRS = lib \ + libinetutils libtelnet libicmp libls \ + src telnet telnetd ftp ftpd talk talkd whois ping ifconfig \ +- doc man \ + tests + + DISTCLEANFILES = pathdefs.make paths.defs \ +diff -ur inetutils-1.9.4/Makefile.in inetutils-1.9.4+iPhone/Makefile.in +--- inetutils-1.9.4/Makefile.in 2015-06-08 21:48:08.000000000 -1000 ++++ inetutils-1.9.4+iPhone/Makefile.in 2018-08-17 15:13:50.000000000 -1000 +@@ -1416,7 +1416,6 @@ + SUBDIRS = lib \ + libinetutils libtelnet libicmp libls \ + src telnet telnetd ftp ftpd talk talkd whois ping ifconfig \ +- doc man \ + tests + + DISTCLEANFILES = pathdefs.make paths.defs \ diff --git a/data/inetutils/inetd.diff b/data/inetutils/inetd.diff deleted file mode 100644 index 1640723dd..000000000 --- a/data/inetutils/inetd.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru inetutils-1.6/inetd/inetd.c inetutils-1.6+iPhone/inetd/inetd.c ---- inetutils-1.6/inetd/inetd.c 2008-12-27 18:50:35.000000000 +0000 -+++ inetutils-1.6+iPhone/inetd/inetd.c 2009-04-10 21:10:19.000000000 +0000 -@@ -163,6 +163,8 @@ - #endif - #define SIGBLOCK (sigmask(SIGCHLD)|sigmask(SIGHUP)|sigmask(SIGALRM)) - -+ARGP_PROGRAM_DATA_SIMPLE ("inetd", "2008"); -+ - bool debug = false; - int nsock, maxsock; - fd_set allsock; diff --git a/data/inetutils/inetutils-1.6.tar.gz b/data/inetutils/inetutils-1.6.tar.gz Binary files differdeleted file mode 100644 index a3b11e268..000000000 --- a/data/inetutils/inetutils-1.6.tar.gz +++ /dev/null diff --git a/data/inetutils/inetutils-1.9.4.tar.xz b/data/inetutils/inetutils-1.9.4.tar.xz Binary files differnew file mode 100644 index 000000000..47af66e5f --- /dev/null +++ b/data/inetutils/inetutils-1.9.4.tar.xz diff --git a/data/inetutils/logwtmp.diff b/data/inetutils/logwtmp.diff deleted file mode 100644 index 3eb7684f3..000000000 --- a/data/inetutils/logwtmp.diff +++ /dev/null @@ -1,117 +0,0 @@ -diff -ru inetutils-1.6/libinetutils/Makefile.am inetutils-1.6+iPhone/libinetutils/Makefile.am ---- inetutils-1.6/libinetutils/Makefile.am 2007-06-29 16:29:31.000000000 +0000 -+++ inetutils-1.6+iPhone/libinetutils/Makefile.am 2009-04-10 20:58:01.000000000 +0000 -@@ -20,10 +20,8 @@ - - noinst_HEADERS = argcv.h libinetutils.h - --EXTRA_DIST = logwtmp.c -- - libinetutils_a_SOURCES = argcv.c cleansess.c daemon.c des_rw.c kcmd.c \ -- krcmd.c localhost.c logwtmpko.c setsig.c shishi.c tftpsubs.c \ -+ krcmd.c localhost.c setsig.c shishi.c tftpsubs.c \ - ttymsg.c utmp_init.c utmp_logout.c - - libinetutils_a_LIBADD = daemon.o $(top_builddir)/lib/libgnu.a -diff -ru inetutils-1.6/libinetutils/Makefile.in inetutils-1.6+iPhone/libinetutils/Makefile.in ---- inetutils-1.6/libinetutils/Makefile.in 2008-12-27 20:52:24.000000000 +0000 -+++ inetutils-1.6+iPhone/libinetutils/Makefile.in 2009-04-10 20:58:14.000000000 +0000 -@@ -132,7 +132,7 @@ - libinetutils_a_DEPENDENCIES = daemon.o $(top_builddir)/lib/libgnu.a - am_libinetutils_a_OBJECTS = argcv.$(OBJEXT) cleansess.$(OBJEXT) \ - daemon.$(OBJEXT) des_rw.$(OBJEXT) kcmd.$(OBJEXT) \ -- krcmd.$(OBJEXT) localhost.$(OBJEXT) logwtmpko.$(OBJEXT) \ -+ krcmd.$(OBJEXT) localhost.$(OBJEXT) \ - setsig.$(OBJEXT) shishi.$(OBJEXT) tftpsubs.$(OBJEXT) \ - ttymsg.$(OBJEXT) utmp_init.$(OBJEXT) utmp_logout.$(OBJEXT) - libinetutils_a_OBJECTS = $(am_libinetutils_a_OBJECTS) -@@ -638,9 +638,8 @@ - whois_INSTALL_HOOK = @whois_INSTALL_HOOK@ - noinst_LIBRARIES = libinetutils.a - noinst_HEADERS = argcv.h libinetutils.h --EXTRA_DIST = logwtmp.c - libinetutils_a_SOURCES = argcv.c cleansess.c daemon.c des_rw.c kcmd.c \ -- krcmd.c localhost.c logwtmpko.c setsig.c shishi.c tftpsubs.c \ -+ krcmd.c localhost.c setsig.c shishi.c tftpsubs.c \ - ttymsg.c utmp_init.c utmp_logout.c - - libinetutils_a_LIBADD = daemon.o $(top_builddir)/lib/libgnu.a -@@ -700,7 +699,6 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmd.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/krcmd.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localhost.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logwtmpko.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setsig.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shishi.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tftpsubs.Po@am__quote@ -diff -ru inetutils-1.6/ftpd/Makefile.am inetutils-1.6+iPhone/ftpd/Makefile.am ---- inetutils-1.6/ftpd/Makefile.am 2008-12-27 20:04:47.000000000 +0000 -+++ inetutils-1.6+iPhone/ftpd/Makefile.am 2009-04-10 21:16:12.000000000 +0000 -@@ -22,7 +22,7 @@ - - EXTRA_PROGRAMS = ftpd - --ftpd_SOURCES = ftpcmd.y ftpd.c logwtmp.c popen.c pam.c auth.c \ -+ftpd_SOURCES = ftpcmd.y ftpd.c popen.c pam.c auth.c \ - conf.c server_mode.c - - noinst_HEADERS = extern.h -diff -ru inetutils-1.6/ftpd/Makefile.in inetutils-1.6+iPhone/ftpd/Makefile.in ---- inetutils-1.6/ftpd/Makefile.in 2008-12-27 20:52:21.000000000 +0000 -+++ inetutils-1.6+iPhone/ftpd/Makefile.in 2009-04-10 21:16:22.000000000 +0000 -@@ -130,7 +130,7 @@ - am__installdirs = "$(DESTDIR)$(inetdaemondir)" "$(DESTDIR)$(man8dir)" - inetdaemonPROGRAMS_INSTALL = $(INSTALL_PROGRAM) - PROGRAMS = $(inetdaemon_PROGRAMS) --am_ftpd_OBJECTS = ftpcmd.$(OBJEXT) ftpd.$(OBJEXT) logwtmp.$(OBJEXT) \ -+am_ftpd_OBJECTS = ftpcmd.$(OBJEXT) ftpd.$(OBJEXT) \ - popen.$(OBJEXT) pam.$(OBJEXT) auth.$(OBJEXT) conf.$(OBJEXT) \ - server_mode.$(OBJEXT) - ftpd_OBJECTS = $(am_ftpd_OBJECTS) -@@ -644,7 +644,7 @@ - whois_BUILD = @whois_BUILD@ - whois_INSTALL_HOOK = @whois_INSTALL_HOOK@ - inetdaemon_PROGRAMS = @ftpd_BUILD@ --ftpd_SOURCES = ftpcmd.y ftpd.c logwtmp.c popen.c pam.c auth.c \ -+ftpd_SOURCES = ftpcmd.y ftpd.c popen.c pam.c auth.c \ - conf.c server_mode.c - - noinst_HEADERS = extern.h -@@ -728,7 +728,6 @@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conf.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftpcmd.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftpd.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logwtmp.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pam.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/popen.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/server_mode.Po@am__quote@ -diff -ru inetutils-1.6/ftpd/ftpd.c inetutils-1.6+iPhone/ftpd/ftpd.c ---- inetutils-1.6/ftpd/ftpd.c 2008-12-27 20:05:07.000000000 +0000 -+++ inetutils-1.6+iPhone/ftpd/ftpd.c 2009-04-10 21:22:09.000000000 +0000 -@@ -639,7 +639,7 @@ - - /* open wtmp before chroot */ - snprintf (ttyline, sizeof (ttyline), "ftp%d", getpid ()); -- logwtmp_keep_open (ttyline, pcred->name, pcred->remotehost); -+ logwtmp (ttyline, pcred->name, pcred->remotehost); - - if (pcred->guest) - { -@@ -788,7 +788,7 @@ - int atype = pcred->auth_type; - seteuid ((uid_t) 0); - if (pcred->logged_in) -- logwtmp_keep_open (ttyline, "", ""); -+ logwtmp (ttyline, "", ""); - - if (pcred->name) - free (pcred->name); -@@ -1703,7 +1703,7 @@ - if (cred.logged_in) - { - seteuid ((uid_t) 0); -- logwtmp_keep_open (ttyline, "", ""); -+ logwtmp (ttyline, "", ""); - } - /* beware of flushing buffers after a SIGPIPE */ - _exit (status); diff --git a/data/inetutils/make.sh b/data/inetutils/make.sh index 7481d441d..d456806e4 100644 --- a/data/inetutils/make.sh +++ b/data/inetutils/make.sh @@ -2,7 +2,7 @@ pkg:setup autoconf # XXX: I miss talkd pkg:configure ac_cv_type_sa_family_t=yes ac_cv_type_socklen_t=yes ac_cv_member_struct_utmp_ut_user=yes ac_cv_func_obstack=no --disable-ifconfig --disable-ping6 --disable-syslogd --disable-talkd --disable-traceroute --disable-whois ac_cv_header_utmp_h=no -make CFLAGS='-O2 -mthumb' +make CFLAGS='-O2' -j8 pkg:install pkg:bin ping pkg: mkdir -p /sbin diff --git a/data/inetutils/rlogind.diff b/data/inetutils/rlogind.diff new file mode 100644 index 000000000..cb12a5627 --- /dev/null +++ b/data/inetutils/rlogind.diff @@ -0,0 +1,48 @@ +diff -ur inetutils-1.9.4/src/rlogind.c inetutils-1.9.4+iPhone/src/rlogind.c +--- inetutils-1.9.4/src/rlogind.c 2015-05-12 02:13:25.000000000 -1000 ++++ inetutils-1.9.4+iPhone/src/rlogind.c 2018-08-17 15:08:20.000000000 -1000 +@@ -1172,7 +1172,7 @@ + struct auth_data auth_data; + char addrstr[INET6_ADDRSTRLEN]; + const char *reply; +- int true; ++ int _true; + char c; + int authenticated; + pid_t pid; +@@ -1204,16 +1204,16 @@ + ? ntohs (((struct sockaddr_in6 *) &auth_data.from)->sin6_port) + : ntohs (((struct sockaddr_in *) &auth_data.from)->sin_port)); + +- true = 1; ++ _true = 1; + if (keepalive +- && setsockopt (infd, SOL_SOCKET, SO_KEEPALIVE, &true, sizeof true) < 0) ++ && setsockopt (infd, SOL_SOCKET, SO_KEEPALIVE, &_true, sizeof _true) < 0) + syslog (LOG_WARNING, "setsockopt (SO_KEEPALIVE): %m"); + + #if defined IP_TOS && defined IPPROTO_IP && defined IPTOS_LOWDELAY +- true = IPTOS_LOWDELAY; ++ _true = IPTOS_LOWDELAY; + if (auth_data.from.ss_family == AF_INET && + setsockopt (infd, IPPROTO_IP, IP_TOS, +- (char *) &true, sizeof true) < 0) ++ (char *) &_true, sizeof _true) < 0) + syslog (LOG_WARNING, "setsockopt (IP_TOS): %m"); + #endif + +@@ -1260,10 +1260,10 @@ + } + + /* Parent */ +- true = 1; +- IF_NOT_ENCRYPT (ioctl (infd, FIONBIO, &true)); +- ioctl (master, FIONBIO, &true); +- ioctl (master, TIOCPKT, &true); ++ _true = 1; ++ IF_NOT_ENCRYPT (ioctl (infd, FIONBIO, &_true)); ++ ioctl (master, FIONBIO, &_true); ++ ioctl (master, TIOCPKT, &_true); + netf = infd; /* Needed for cleanup() */ + setsig (SIGCHLD, cleanup); + protocol (infd, master, &auth_data); diff --git a/data/inetutils/talkd.diff b/data/inetutils/talkd.diff deleted file mode 100644 index 2a17a1ddc..000000000 --- a/data/inetutils/talkd.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff -ru inetutils-1.5/configure.ac inetutils-1.5+iPhone/configure.ac ---- inetutils-1.5/configure.ac 2007-06-28 22:58:23.000000000 +0000 -+++ inetutils-1.5+iPhone/configure.ac 2008-03-24 13:47:26.000000000 +0000 -@@ -470,7 +470,8 @@ - [AC_DEFINE(HAVE_OSOCKADDR_H, 1, - [Define to one if you have <osockaddr.h>.])], - [#include <sys/types.h> -- #include <sys/socket.h> ]) -+ #include <sys/socket.h> -+ #include <protocols/talkd.h> ]) - - AC_CHECK_TYPES(struct if_nameindex, , , - [#include <sys/types.h> diff --git a/data/inetutils/utmpx.diff b/data/inetutils/utmpx.diff deleted file mode 100644 index 319be4ea0..000000000 --- a/data/inetutils/utmpx.diff +++ /dev/null @@ -1,70 +0,0 @@ -diff -ru inetutils-1.5/configure.ac inetutils-1.5+iPhone/configure.ac ---- inetutils-1.5/configure.ac 2007-06-28 22:58:23.000000000 +0000 -+++ inetutils-1.5+iPhone/configure.ac 2008-01-02 02:07:05.000000000 +0000 -@@ -776,8 +776,7 @@ - AC_DEFINE(UTMPX, 1, [FIXME]) - AC_DEFINE(HAVE_STREAMSPTY, 1, [FIXME]) - ;; --*irix* | *hpux*) -- AC_DEFINE(UTMPX, 1, [FIXME]) -+*irix* | *hpux* | *darwin*) - AC_DEFINE(UTMPX, 1, [FIXME]) - ;; - esac -diff -ru inetutils-1.6/libinetutils/utmp_logout.c inetutils-1.6+iPhone/libinetutils/utmp_logout.c ---- inetutils-1.6/libinetutils/utmp_logout.c 2006-10-21 15:24:20.000000000 +0000 -+++ inetutils-1.6+iPhone/libinetutils/utmp_logout.c 2009-04-09 10:07:11.000000000 +0000 -@@ -52,12 +52,22 @@ - - if ((ut = getutxline (&utx))) - { -+# ifdef HAVE_STRUCT_UTMPX_UT_TYPE - ut->ut_type = DEAD_PROCESS; -+# endif -+# ifdef HAVE_STRUCT_UTMPX_UT_EXIT - ut->ut_exit.e_termination = 0; - ut->ut_exit.e_exit = 0; -+# endif -+# ifdef HAVE_STRUCT_UTMPX_UT_TV - gettimeofday (&(ut->ut_tv), 0); -+# else -+ time (&(ut->ut_time)); -+# endif - pututxline (ut); -+# ifdef HAVE_UPDWTMPX - updwtmpx (PATH_WTMPX, ut); -+# endif - } - endutxent (); - #else -diff -ru inetutils-1.6/libinetutils/logwtmp.c inetutils-1.6+iPhone/libinetutils/logwtmp.c ---- inetutils-1.6/libinetutils/logwtmp.c 2007-06-29 16:29:31.000000000 +0000 -+++ inetutils-1.6+iPhone/libinetutils/logwtmp.c 2009-04-10 19:44:24.000000000 +0000 -@@ -48,6 +48,7 @@ - # include <utmp.h> - #else - # ifdef HAVE_UTMPX_H -+# define _UTMPX_COMPAT - # include <utmpx.h> - # define utmp utmpx /* make utmpx look more like utmp */ - # endif -@@ -113,16 +114,16 @@ - - /* Set information in new entry. */ - bzero (&ut, sizeof (ut)); --#ifdef HAVE_STRUCT_UTMP_UT_TYPE -+#if defined(HAVE_STRUCT_UTMP_UT_TYPE) || defined(HAVE_STRUCT_UTMPX_UT_TYPE) - ut.ut_type = USER_PROCESS; - #endif - strncpy (ut.ut_line, line, sizeof ut.ut_line); - strncpy (ut.ut_name, name, sizeof ut.ut_name); --#ifdef HAVE_STRUCT_UTMP_UT_HOST -+#if defined(HAVE_STRUCT_UTMP_UT_HOST) || defined(HAVE_STRUCT_UTMPX_UT_HOST) - strncpy (ut.ut_host, host, sizeof ut.ut_host); - #endif - --#ifdef HAVE_STRUCT_UTMP_UT_TV -+#if defined(HAVE_STRUCT_UTMP_UT_TV) || defined(HAVE_STRUCT_UTMPX_UT_TV) - gettimeofday (&ut.ut_tv, NULL); - #else - time (&ut.ut_time); diff --git a/data/iokittools/IOKitTools-76.tar.gz b/data/iokittools/IOKitTools-76.tar.gz Binary files differdeleted file mode 100644 index 25b29a4f0..000000000 --- a/data/iokittools/IOKitTools-76.tar.gz +++ /dev/null diff --git a/data/iokittools/kernel.diff b/data/iokittools/kernel.diff new file mode 100644 index 000000000..8057f5bba --- /dev/null +++ b/data/iokittools/kernel.diff @@ -0,0 +1,14 @@ +diff -ur IOKitTools-108/ioclasscount.tproj/ioclasscount.c IOKitTools-108+iPhone/ioclasscount.tproj/ioclasscount.c +--- IOKitTools-108/ioclasscount.tproj/ioclasscount.c 2017-07-15 15:12:07.000000000 -1000 ++++ IOKitTools-108+iPhone/ioclasscount.tproj/ioclasscount.c 2018-09-02 12:57:00.000000000 -1000 +@@ -33,8 +33,8 @@ + #include <mach/mach_vm.h> + #include <mach/vm_statistics.h> + #include <CoreFoundation/CoreFoundation.h> +-#include <Kernel/IOKit/IOKitDebug.h> +-#include <Kernel/libkern/OSKextLibPrivate.h> ++#include <IOKit/IOKitDebug.h> ++#include <libkern/OSKextLibPrivate.h> + #include <IOKit/IOKitLib.h> + #include <IOKit/IOKitKeys.h> + #include <CoreSymbolication/CoreSymbolication.h> diff --git a/data/iokittools/make.sh b/data/iokittools/make.sh index 4c10ed0f8..04807cd30 100644 --- a/data/iokittools/make.sh +++ b/data/iokittools/make.sh @@ -6,3 +6,5 @@ for tproj in *.tproj; do ${PKG_TARG}-gcc -lcurses -o "${tproj}" "${tproj}.tproj"/*.c -framework CoreFoundation -framework IOKit -save-temps pkg: cp -a "${tproj}" /usr/sbin done +# In firmware-sbin +pkg: rm /usr/sbin/ioreg diff --git a/data/irssi/_metadata/version b/data/irssi/_metadata/version index 7eff8ab95..524cb5524 100644 --- a/data/irssi/_metadata/version +++ b/data/irssi/_metadata/version @@ -1 +1 @@ -0.8.12 +1.1.1 diff --git a/data/irssi/irssi-0.8.12.tar.gz b/data/irssi/irssi-0.8.12.tar.gz Binary files differdeleted file mode 100644 index b1bbc629e..000000000 --- a/data/irssi/irssi-0.8.12.tar.gz +++ /dev/null diff --git a/data/irssi/irssi-1.1.1.tar.xz b/data/irssi/irssi-1.1.1.tar.xz Binary files differnew file mode 100644 index 000000000..5a76161e6 --- /dev/null +++ b/data/irssi/irssi-1.1.1.tar.xz diff --git a/data/irssi/make.sh b/data/irssi/make.sh index 13355cdca..2248ec7ae 100644 --- a/data/irssi/make.sh +++ b/data/irssi/make.sh @@ -1,5 +1,5 @@ pkg:setup pkg:autoconf -pkg:configure --enable-static -make +pkg:configure --enable-static LD="${PKG_TARG}-ld" +make -j8 pkg:install diff --git a/data/irssi/mdns.diff b/data/irssi/mdns.diff deleted file mode 100644 index 50478e973..000000000 --- a/data/irssi/mdns.diff +++ /dev/null @@ -1,50 +0,0 @@ -diff -ru irssi-0.8.12/src/fe-none/irssi.c irssi-0.8.12+iPhone/src/fe-none/irssi.c ---- irssi-0.8.12/src/fe-none/irssi.c 2007-10-06 09:38:20.000000000 +0000 -+++ irssi-0.8.12+iPhone/src/fe-none/irssi.c 2008-01-28 22:40:10.000000000 +0000 -@@ -1,3 +1,5 @@ -+#include <mach-o/nlist.h> -+ - /* - irssi.c : irssi - -@@ -81,6 +83,15 @@ - - int main(int argc, char **argv) - { -+#if !defined(__ENVIRONMENT_ASPEN_VERSION_MIN_REQUIRED__) || __ENVIRONMENT_ASPEN_VERSION_MIN_REQUIRED__ < 10200 -+ struct nlist nl[2]; -+ memset(nl, 0, sizeof(nl)); -+ nl[0].n_un.n_name = (char *) "_useMDNSResponder"; -+ nlist("/usr/lib/libc.dylib", nl); -+ if (nl[0].n_type != N_UNDF) -+ *(int *) nl[0].n_value = 0; -+#endif -+ - static struct poptOption options[] = { - POPT_AUTOHELP - { "load", 'l', POPT_ARG_STRING, &autoload_module, 0, "Module to load (default = bot)", "MODULE" }, -diff -ru irssi-0.8.12/src/fe-text/irssi.c irssi-0.8.12+iPhone/src/fe-text/irssi.c ---- irssi-0.8.12/src/fe-text/irssi.c 2007-10-06 09:38:20.000000000 +0000 -+++ irssi-0.8.12+iPhone/src/fe-text/irssi.c 2008-01-28 22:40:01.000000000 +0000 -@@ -1,3 +1,5 @@ -+#include <mach-o/nlist.h> -+ - /* - irssi.c : irssi - -@@ -328,6 +330,15 @@ - - int main(int argc, char **argv) - { -+#if !defined(__ENVIRONMENT_ASPEN_VERSION_MIN_REQUIRED__) || __ENVIRONMENT_ASPEN_VERSION_MIN_REQUIRED__ < 10200 -+ struct nlist nl[2]; -+ memset(nl, 0, sizeof(nl)); -+ nl[0].n_un.n_name = (char *) "_useMDNSResponder"; -+ nlist("/usr/lib/libc.dylib", nl); -+ if (nl[0].n_type != N_UNDF) -+ *(int *) nl[0].n_value = 0; -+#endif -+ - static int version = 0; - static struct poptOption options[] = { - { "dummy", 'd', POPT_ARG_NONE, &dummy, 0, "Use the dummy terminal mode", NULL }, diff --git a/data/launchd/_metadata/version b/data/launchd/_metadata/version index bb6d31c0c..6524baf05 100644 --- a/data/launchd/_metadata/version +++ b/data/launchd/_metadata/version @@ -1 +1 @@ -258.18 +842.92.1 diff --git a/data/launchd/launchd-258.18.tar.gz b/data/launchd/launchd-258.18.tar.gz Binary files differdeleted file mode 100644 index b5e4ffc67..000000000 --- a/data/launchd/launchd-258.18.tar.gz +++ /dev/null diff --git a/data/launchd/launchd-842.92.1.tar.gz b/data/launchd/launchd-842.92.1.tar.gz Binary files differnew file mode 100644 index 000000000..afbf09133 --- /dev/null +++ b/data/launchd/launchd-842.92.1.tar.gz diff --git a/data/launchd/make.sh b/data/launchd/make.sh index cf4270d30..6bb833073 100644 --- a/data/launchd/make.sh +++ b/data/launchd/make.sh @@ -1,6 +1,7 @@ -pkg:setup -cd launchd -pkg:configure --bindir=/bin --sbindir=/sbin --sysconfdir=/etc -export SDKROOT=${PKG_ROOT} -make -pkg:install +pkg:extract +cd * +pkg:patch +#${PKG_TARG}-gcc -c liblaunch/liblaunch.c -o liblaunch.o -Isrc -miphoneos-version-min=11.0 -Iliblaunch +${PKG_TARG}-gcc -DPRIVATE support/launchctl.c -o launchctl -Isrc -miphoneos-version-min=11.0 -Iliblaunch -I"$(PKG_DEST_ readline)/usr/include" -framework CoreFoundation -framework IOKit -lreadline -llaunch +pkg: mkdir -p /usr/bin +pkg: cp -a launchctl /usr/bin diff --git a/data/launchd/port.diff b/data/launchd/port.diff deleted file mode 100644 index 4bf2ee0af..000000000 --- a/data/launchd/port.diff +++ /dev/null @@ -1,107 +0,0 @@ -diff -ru launchd-258.18/launchd/configure launchd-258.18+iPhone/launchd/configure ---- launchd-258.18/launchd/configure 2008-01-28 18:20:19.000000000 +0000 -+++ launchd-258.18+iPhone/launchd/configure 2008-11-24 10:24:21.000000000 +0000 -@@ -7863,13 +7863,8 @@ - LIBS_ONLY_FALSE= - fi - -- if test $(tconf --test TARGET_OS_EMBEDDED) = YES; then - DO_EMBEDDED_MAGIC_TRUE= - DO_EMBEDDED_MAGIC_FALSE='#' --else -- DO_EMBEDDED_MAGIC_TRUE='#' -- DO_EMBEDDED_MAGIC_FALSE= --fi - - - -diff -ru launchd-258.18/launchd/src/launchctl.c launchd-258.18+iPhone/launchd/src/launchctl.c ---- launchd-258.18/launchd/src/launchctl.c 2008-07-18 21:25:03.000000000 +0000 -+++ launchd-258.18+iPhone/launchd/src/launchctl.c 2008-11-24 10:27:33.000000000 +0000 -@@ -20,6 +20,8 @@ - - static const char *const __rcs_file_version__ = "$Revision: 23642 $"; - -+#define PRIVATE -+ - #include "liblaunch_public.h" - #include "liblaunch_private.h" - #include "libbootstrap_public.h" -@@ -74,6 +76,9 @@ - #include <sysexits.h> - #include <util.h> - -+#include <sys/sockio.h> -+#include <mach/mach_error.h> -+#include <sys/ioctl.h> - - #define LAUNCH_SECDIR "/tmp/launch-XXXXXX" - -diff -ru launchd-258.18/launchd/src/launchd_runtime.c launchd-258.18+iPhone/launchd/src/launchd_runtime.c ---- launchd-258.18/launchd/src/launchd_runtime.c 2008-03-04 17:48:07.000000000 +0000 -+++ launchd-258.18+iPhone/launchd/src/launchd_runtime.c 2008-11-24 10:37:16.000000000 +0000 -@@ -75,6 +75,8 @@ - static mach_port_t launchd_internal_port; - static int mainkq; - -+extern void mach_msg_destroy(mach_msg_header_t *mh); -+ - #define BULK_KEV_MAX 100 - static struct kevent *bulk_kev; - static int bulk_kev_i; -diff -ru launchd-258.18/launchd/src/Makefile.am launchd-258.18+iPhone/launchd/src/Makefile.am ---- launchd-258.18/launchd/src/Makefile.am 2008-01-28 18:20:19.000000000 +0000 -+++ launchd-258.18+iPhone/launchd/src/Makefile.am 2008-11-24 10:32:27.000000000 +0000 -@@ -46,7 +46,7 @@ - sysconf_DATA = hostconfig rc.common rc.netboot - - launchctl_CFLAGS = $(AM_CFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders --launchctl_LDFLAGS = $(AM_LDFLAGS) -framework CoreFoundation -framework IOKit $(LIBS_SECURITY) -weak_library /usr/lib/libedit.dylib -+launchctl_LDFLAGS = $(AM_LDFLAGS) -framework CoreFoundation -framework IOKit $(LIBS_SECURITY) -weak_library $(SDKROOT)/usr/lib/libedit.dylib - - if DO_EMBEDDED_MAGIC - else -@@ -64,11 +64,11 @@ - - launchproxy_LDFLAGS = $(AM_LDFLAGS) $(WEAKLIBS_SECURITY) - --notifyServer.c notifyServer.h: /usr/include/mach/notify.defs -- mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader notifyServer.h /usr/include/mach/notify.defs -+notifyServer.c notifyServer.h: $(SDKROOT)/usr/include/mach/notify.defs -+ mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader notifyServer.h $(SDKROOT)/usr/include/mach/notify.defs - --mach_excServer.c mach_excServer.h: /usr/include/mach/mach_exc.defs -- mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader mach_excServer.h /usr/include/mach/mach_exc.defs -+mach_excServer.c mach_excServer.h: $(SDKROOT)/usr/include/mach/mach_exc.defs -+ mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader mach_excServer.h $(SDKROOT)/usr/include/mach/mach_exc.defs - - job_replyUser.c job_reply.h: $(srcdir)/protocol_job_reply.defs - mig $(MIGFLAGS) -sheader /dev/null -server /dev/null $(srcdir)/protocol_job_reply.defs -diff -ru launchd-258.18/launchd/src/Makefile.in launchd-258.18+iPhone/launchd/src/Makefile.in ---- launchd-258.18/launchd/src/Makefile.in 2008-01-28 18:20:19.000000000 +0000 -+++ launchd-258.18+iPhone/launchd/src/Makefile.in 2008-11-24 10:32:41.000000000 +0000 -@@ -254,7 +254,7 @@ - @LIBS_ONLY_TRUE@liblaunch_profile_a_SOURCES = liblaunch.c libvproc.c libbootstrap.c protocol_vprocUser.c __version.c - @LIBS_ONLY_FALSE@sysconf_DATA = hostconfig rc.common rc.netboot - @LIBS_ONLY_FALSE@launchctl_CFLAGS = $(AM_CFLAGS) -I$(SDKROOT)/System/Library/Frameworks/System.framework/PrivateHeaders --@LIBS_ONLY_FALSE@launchctl_LDFLAGS = $(AM_LDFLAGS) -framework CoreFoundation -framework IOKit $(LIBS_SECURITY) -weak_library /usr/lib/libedit.dylib -+@LIBS_ONLY_FALSE@launchctl_LDFLAGS = $(AM_LDFLAGS) -framework CoreFoundation -framework IOKit $(LIBS_SECURITY) -weak_library $(SDKROOT)/usr/lib/libedit.dylib - @DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE@SystemStarter_CFLAGS = -mdynamic-no-pic $(AM_CFLAGS) - @DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE@SystemStarter_LDFLAGS = $(AM_LDFLAGS) -framework CoreFoundation -framework IOKit - @DO_EMBEDDED_MAGIC_FALSE@@LIBS_ONLY_FALSE@SystemStarter_SOURCES = StartupItems.c IPC.c SystemStarter.c -@@ -1174,11 +1174,11 @@ - @LIBS_ONLY_FALSE@launchd_runtime.c:: notifyServer.h launchd_internal.h mach_excServer.h - @LIBS_ONLY_FALSE@launchd_core_logic.c:: protocol_vproc.h job_reply.h protocol_vprocServer.h - --@LIBS_ONLY_FALSE@notifyServer.c notifyServer.h: /usr/include/mach/notify.defs --@LIBS_ONLY_FALSE@ mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader notifyServer.h /usr/include/mach/notify.defs -+@LIBS_ONLY_FALSE@notifyServer.c notifyServer.h: $(SDKROOT)/usr/include/mach/notify.defs -+@LIBS_ONLY_FALSE@ mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader notifyServer.h $(SDKROOT)/usr/include/mach/notify.defs - --@LIBS_ONLY_FALSE@mach_excServer.c mach_excServer.h: /usr/include/mach/mach_exc.defs --@LIBS_ONLY_FALSE@ mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader mach_excServer.h /usr/include/mach/mach_exc.defs -+@LIBS_ONLY_FALSE@mach_excServer.c mach_excServer.h: $(SDKROOT)/usr/include/mach/mach_exc.defs -+@LIBS_ONLY_FALSE@ mig $(MIGFLAGS) -header /dev/null -user /dev/null -sheader mach_excServer.h $(SDKROOT)/usr/include/mach/mach_exc.defs - - @LIBS_ONLY_FALSE@job_replyUser.c job_reply.h: $(srcdir)/protocol_job_reply.defs - @LIBS_ONLY_FALSE@ mig $(MIGFLAGS) -sheader /dev/null -server /dev/null $(srcdir)/protocol_job_reply.defs diff --git a/data/launchd/sockio.diff b/data/launchd/sockio.diff new file mode 100644 index 000000000..d7be39318 --- /dev/null +++ b/data/launchd/sockio.diff @@ -0,0 +1,14 @@ +diff -ur launchd-842.92.1/support/launchctl.c launchd-842.92.1+iPhone/support/launchctl.c +--- launchd-842.92.1/support/launchctl.c 2013-04-01 10:49:56.000000000 -1000 ++++ launchd-842.92.1+iPhone/support/launchctl.c 2018-09-03 22:33:20.000000000 -1000 +@@ -39,9 +39,9 @@ + #include <sys/types.h> + #include <sys/sysctl.h> + #include <sys/time.h> +-#include <sys/sysctl.h> + #include <sys/stat.h> + #include <sys/socket.h> ++#include <sys/sockio.h> + #include <sys/un.h> + #include <sys/fcntl.h> + #include <sys/event.h> diff --git a/data/libgpg-error/triplet.diff b/data/libgpg-error/triplet.diff index cd7236070..b0efa85d3 100644 --- a/data/libgpg-error/triplet.diff +++ b/data/libgpg-error/triplet.diff @@ -1,11 +1,12 @@ diff -ur libgpg-error-1.32/src/mkheader.c libgpg-error-1.32+iPhone/src/mkheader.c --- libgpg-error-1.32/src/mkheader.c 2018-03-13 22:56:20.000000000 -1000 +++ libgpg-error-1.32+iPhone/src/mkheader.c 2018-08-01 15:13:26.000000000 -1000 -@@ -90,6 +90,7 @@ +@@ -90,6 +90,8 @@ {"powerpc-unknown-linux-gnuspe", "powerpc-unknown-linux-gnu" }, {"arm-unknown-linux-gnueabihf", "arm-unknown-linux-gnueabi" }, -+ {"aarch64-apple-darwin13", "aarch64-apple-darwin" }, ++ {"aarch64-apple-darwin14", "aarch64-apple-darwin" }, ++ {"aarch64-apple-darwin17", "aarch64-apple-darwin" }, {"armv7-unknown-linux-gnueabihf" }, {"armv5-unknown-linux-musleabi" }, {"armv6-unknown-linux-musleabihf" }, diff --git a/data/libid3tag/make.sh b/data/libid3tag/make.sh index 452a4bfd5..ce58b7c91 100644 --- a/data/libid3tag/make.sh +++ b/data/libid3tag/make.sh @@ -1,4 +1,5 @@ pkg:setup +cp ${PKG_BASE}/config.sub . pkg:configure make pkg:install diff --git a/data/libsamplerate/_metadata/libfftw3.dep b/data/libsamplerate/_metadata/libfftw3.dep new file mode 120000 index 000000000..8fddea995 --- /dev/null +++ b/data/libsamplerate/_metadata/libfftw3.dep @@ -0,0 +1 @@ +../../libfftw3
\ No newline at end of file diff --git a/data/libsamplerate/make.sh b/data/libsamplerate/make.sh index 452a4bfd5..baecee47e 100644 --- a/data/libsamplerate/make.sh +++ b/data/libsamplerate/make.sh @@ -1,4 +1,5 @@ pkg:setup +cp "${PKG_BASE}/config.sub" . pkg:configure -make +make -j8 pkg:install diff --git a/data/libserf/_metadata/apr-lib.dep b/data/libserf/_metadata/apr-lib.dep new file mode 120000 index 000000000..82332fb1d --- /dev/null +++ b/data/libserf/_metadata/apr-lib.dep @@ -0,0 +1 @@ +../../apr-lib
\ No newline at end of file diff --git a/data/libserf/_metadata/apr-util.dep b/data/libserf/_metadata/apr-util.dep new file mode 120000 index 000000000..a78d94c6b --- /dev/null +++ b/data/libserf/_metadata/apr-util.dep @@ -0,0 +1 @@ +../../apr-util
\ No newline at end of file diff --git a/data/libserf/_metadata/description b/data/libserf/_metadata/description new file mode 100644 index 000000000..00511c681 --- /dev/null +++ b/data/libserf/_metadata/description @@ -0,0 +1 @@ +a high performance C-based HTTP client library built upon the Apache Portable Runtime (APR) library. diff --git a/data/libserf/_metadata/expat.dep b/data/libserf/_metadata/expat.dep new file mode 120000 index 000000000..2100fb19e --- /dev/null +++ b/data/libserf/_metadata/expat.dep @@ -0,0 +1 @@ +../../expat
\ No newline at end of file diff --git a/data/libserf/_metadata/homepage b/data/libserf/_metadata/homepage new file mode 100644 index 000000000..b4a4eedde --- /dev/null +++ b/data/libserf/_metadata/homepage @@ -0,0 +1 @@ +https://serf.apache.org/ diff --git a/data/libserf/_metadata/license b/data/libserf/_metadata/license new file mode 120000 index 000000000..d0b14a610 --- /dev/null +++ b/data/libserf/_metadata/license @@ -0,0 +1 @@ +../../../licenses/apache-2.0
\ No newline at end of file diff --git a/data/libserf/_metadata/maintainer b/data/libserf/_metadata/maintainer new file mode 120000 index 000000000..573d7ebef --- /dev/null +++ b/data/libserf/_metadata/maintainer @@ -0,0 +1 @@ +../../../people/sbingner
\ No newline at end of file diff --git a/data/libserf/_metadata/priority b/data/libserf/_metadata/priority new file mode 100644 index 000000000..a6a7b9cd7 --- /dev/null +++ b/data/libserf/_metadata/priority @@ -0,0 +1 @@ +standard diff --git a/data/libserf/_metadata/role b/data/libserf/_metadata/role new file mode 100644 index 000000000..8d0320866 --- /dev/null +++ b/data/libserf/_metadata/role @@ -0,0 +1 @@ +developer diff --git a/data/libserf/_metadata/section b/data/libserf/_metadata/section new file mode 100644 index 000000000..e0eb96881 --- /dev/null +++ b/data/libserf/_metadata/section @@ -0,0 +1 @@ +Development diff --git a/data/libserf/_metadata/tags b/data/libserf/_metadata/tags new file mode 100644 index 000000000..a8928cec8 --- /dev/null +++ b/data/libserf/_metadata/tags @@ -0,0 +1 @@ +purpose::library diff --git a/data/libserf/_metadata/version b/data/libserf/_metadata/version new file mode 100644 index 000000000..d4c4950a3 --- /dev/null +++ b/data/libserf/_metadata/version @@ -0,0 +1 @@ +1.3.9 diff --git a/data/libserf/make.sh b/data/libserf/make.sh new file mode 100644 index 000000000..71f549558 --- /dev/null +++ b/data/libserf/make.sh @@ -0,0 +1,8 @@ +pkg:setup +export PATH +SCONS="scons APR=\"$(echo $(PKG_WORK_ _apr)/*/apr-1-config)\" APU=\"$(echo $(PKG_WORK_ apr-util)/*/apu-1-config)\" OPENSSL=\"$(PKG_DEST_ openssl)/usr\" PREFIX=/usr LIBDIR=/usr/lib CC=\"$(which ${PKG_TARG}-gcc)\" SOURCE_LAYOUT=1 LINKFLAGS=\"-L$(PKG_DEST_ _apr)/usr/lib -L$(PKG_DEST_ apr-util)/usr/lib -L$(PKG_DEST_ expat)/usr/lib\"" +echo ${SCONS} +eval ${SCONS} +mkdir -p "$(PKG_DEST_ libserf)" +scons install --install-sandbox="$(PKG_DEST_ libserf)" +pkg: rm /usr/lib/libserf-1.a diff --git a/data/libserf/serf-1.3.9.tar.bz2 b/data/libserf/serf-1.3.9.tar.bz2 Binary files differnew file mode 100644 index 000000000..734f2366a --- /dev/null +++ b/data/libserf/serf-1.3.9.tar.bz2 diff --git a/data/libsigc++3.0/_metadata/description b/data/libsigc++3.0/_metadata/description new file mode 100644 index 000000000..8422124b1 --- /dev/null +++ b/data/libsigc++3.0/_metadata/description @@ -0,0 +1 @@ +callback framework for C++ diff --git a/data/libsigc++3.0/_metadata/license b/data/libsigc++3.0/_metadata/license new file mode 120000 index 000000000..577aa1598 --- /dev/null +++ b/data/libsigc++3.0/_metadata/license @@ -0,0 +1 @@ +../../../licenses/lgpl-2.1
\ No newline at end of file diff --git a/data/libsigc++3.0/_metadata/maintainer b/data/libsigc++3.0/_metadata/maintainer new file mode 120000 index 000000000..0fa66e077 --- /dev/null +++ b/data/libsigc++3.0/_metadata/maintainer @@ -0,0 +1 @@ +../../../people/saurik
\ No newline at end of file diff --git a/data/libsigc++3.0/_metadata/priority b/data/libsigc++3.0/_metadata/priority new file mode 100644 index 000000000..134d9bc32 --- /dev/null +++ b/data/libsigc++3.0/_metadata/priority @@ -0,0 +1 @@ +optional diff --git a/data/libsigc++3.0/_metadata/role b/data/libsigc++3.0/_metadata/role new file mode 100644 index 000000000..8d0320866 --- /dev/null +++ b/data/libsigc++3.0/_metadata/role @@ -0,0 +1 @@ +developer diff --git a/data/libsigc++3.0/_metadata/section b/data/libsigc++3.0/_metadata/section new file mode 100644 index 000000000..e0eb96881 --- /dev/null +++ b/data/libsigc++3.0/_metadata/section @@ -0,0 +1 @@ +Development diff --git a/data/libsigc++3.0/_metadata/tags b/data/libsigc++3.0/_metadata/tags new file mode 100644 index 000000000..a8928cec8 --- /dev/null +++ b/data/libsigc++3.0/_metadata/tags @@ -0,0 +1 @@ +purpose::library diff --git a/data/libsigc++3.0/_metadata/version b/data/libsigc++3.0/_metadata/version new file mode 100644 index 000000000..e42e9b411 --- /dev/null +++ b/data/libsigc++3.0/_metadata/version @@ -0,0 +1 @@ +2.99.11 diff --git a/data/libsigc++3.0/libsigc++-2.99.11.tar.xz b/data/libsigc++3.0/libsigc++-2.99.11.tar.xz Binary files differnew file mode 100644 index 000000000..73f7ba797 --- /dev/null +++ b/data/libsigc++3.0/libsigc++-2.99.11.tar.xz diff --git a/data/libsigc++3.0/make.sh b/data/libsigc++3.0/make.sh new file mode 100644 index 000000000..e2c5ac499 --- /dev/null +++ b/data/libsigc++3.0/make.sh @@ -0,0 +1,4 @@ +pkg:setup +pkg:configure +make V=1 -j8 +pkg:install diff --git a/data/libxml2/_metadata/libxml2-lib.dep b/data/libxml2/_metadata/libxml2-lib.dep deleted file mode 120000 index 4caf793d4..000000000 --- a/data/libxml2/_metadata/libxml2-lib.dep +++ /dev/null @@ -1 +0,0 @@ -../../libxml2-lib
\ No newline at end of file diff --git a/data/links/_metadata/version b/data/links/_metadata/version index 0338f8d1a..f1ad6a77c 100644 --- a/data/links/_metadata/version +++ b/data/links/_metadata/version @@ -1 +1 @@ -0.99 +1.03 diff --git a/data/links/links-0.99.tar.gz b/data/links/links-0.99.tar.gz Binary files differdeleted file mode 100644 index 2d25f73d9..000000000 --- a/data/links/links-0.99.tar.gz +++ /dev/null diff --git a/data/links/links-1.03.tar.gz b/data/links/links-1.03.tar.gz Binary files differnew file mode 100644 index 000000000..70a3cc256 --- /dev/null +++ b/data/links/links-1.03.tar.gz diff --git a/data/links/make.sh b/data/links/make.sh index 7dac292bc..d98847616 100644 --- a/data/links/make.sh +++ b/data/links/make.sh @@ -1,5 +1,5 @@ pkg:setup autoconf pkg:configure -make +make -j8 pkg:install diff --git a/data/links/mdns.diff b/data/links/mdns.diff deleted file mode 100644 index c48de5c2f..000000000 --- a/data/links/mdns.diff +++ /dev/null @@ -1,25 +0,0 @@ -diff -ru links-0.99/main.c links-0.99+iPhone/main.c ---- links-0.99/main.c 2002-06-29 18:44:25.000000000 +0000 -+++ links-0.99+iPhone/main.c 2008-03-04 20:43:00.000000000 +0000 -@@ -1,3 +1,5 @@ -+#include <mach-o/nlist.h> -+ - #include "links.h" - - int retval = RET_OK; -@@ -330,6 +332,15 @@ - - int main(int argc, char *argv[]) - { -+#if !defined(__ENVIRONMENT_ASPEN_VERSION_MIN_REQUIRED__) || __ENVIRONMENT_ASPEN_VERSION_MIN_REQUIRED__ < 10200 -+ struct nlist nl[2]; -+ memset(nl, 0, sizeof(nl)); -+ nl[0].n_un.n_name = (char *) "_useMDNSResponder"; -+ nlist("/usr/lib/libc.dylib", nl); -+ if (nl[0].n_type != N_UNDF) -+ *(int *) nl[0].n_value = 0; -+#endif -+ - path_to_exe = argv[0]; - ac = argc; - av = (unsigned char **)argv; diff --git a/data/llvm-clang/_metadata/conflicts b/data/llvm-clang/_metadata/conflicts new file mode 100644 index 000000000..08f4c1128 --- /dev/null +++ b/data/llvm-clang/_metadata/conflicts @@ -0,0 +1 @@ +org.coolstar.llvm-clang64, org.coolstar.llvm-clang diff --git a/data/llvm-clang/_metadata/description b/data/llvm-clang/_metadata/description new file mode 100644 index 000000000..bc38f718d --- /dev/null +++ b/data/llvm-clang/_metadata/description @@ -0,0 +1 @@ +A toolkit for the construction of highly optimized compilers, optimizers, and runtime environments and a compiler front-end for the C family of languages (C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM compiler infrastructure project. diff --git a/data/llvm-clang/_metadata/license b/data/llvm-clang/_metadata/license new file mode 120000 index 000000000..eea9de8d1 --- /dev/null +++ b/data/llvm-clang/_metadata/license @@ -0,0 +1 @@ +../../../licenses/bsd
\ No newline at end of file diff --git a/data/llvm-clang/_metadata/maintainer b/data/llvm-clang/_metadata/maintainer new file mode 120000 index 000000000..573d7ebef --- /dev/null +++ b/data/llvm-clang/_metadata/maintainer @@ -0,0 +1 @@ +../../../people/sbingner
\ No newline at end of file diff --git a/data/llvm-clang/_metadata/name b/data/llvm-clang/_metadata/name new file mode 100644 index 000000000..8e28c177c --- /dev/null +++ b/data/llvm-clang/_metadata/name @@ -0,0 +1 @@ +LLVM Clang diff --git a/data/llvm-clang/_metadata/priority b/data/llvm-clang/_metadata/priority new file mode 100644 index 000000000..134d9bc32 --- /dev/null +++ b/data/llvm-clang/_metadata/priority @@ -0,0 +1 @@ +optional diff --git a/data/llvm-clang/_metadata/provides b/data/llvm-clang/_metadata/provides new file mode 100644 index 000000000..08f4c1128 --- /dev/null +++ b/data/llvm-clang/_metadata/provides @@ -0,0 +1 @@ +org.coolstar.llvm-clang64, org.coolstar.llvm-clang diff --git a/data/llvm-clang/_metadata/replaces b/data/llvm-clang/_metadata/replaces new file mode 100644 index 000000000..08f4c1128 --- /dev/null +++ b/data/llvm-clang/_metadata/replaces @@ -0,0 +1 @@ +org.coolstar.llvm-clang64, org.coolstar.llvm-clang diff --git a/data/llvm-clang/_metadata/role b/data/llvm-clang/_metadata/role new file mode 100644 index 000000000..8d0320866 --- /dev/null +++ b/data/llvm-clang/_metadata/role @@ -0,0 +1 @@ +developer diff --git a/data/llvm-clang/_metadata/section b/data/llvm-clang/_metadata/section new file mode 100644 index 000000000..e0eb96881 --- /dev/null +++ b/data/llvm-clang/_metadata/section @@ -0,0 +1 @@ +Development diff --git a/data/llvm-clang/_metadata/tags b/data/llvm-clang/_metadata/tags new file mode 100644 index 000000000..ad5d50831 --- /dev/null +++ b/data/llvm-clang/_metadata/tags @@ -0,0 +1 @@ +purpose::console diff --git a/data/llvm-clang/_metadata/version b/data/llvm-clang/_metadata/version new file mode 100644 index 000000000..a1ef0cae1 --- /dev/null +++ b/data/llvm-clang/_metadata/version @@ -0,0 +1 @@ +5.0.2 diff --git a/data/llvm-clang/iphonesdkpath.diff b/data/llvm-clang/iphonesdkpath.diff new file mode 100644 index 000000000..ace9daa10 --- /dev/null +++ b/data/llvm-clang/iphonesdkpath.diff @@ -0,0 +1,46 @@ +diff -ur swift-llvm-swift-4.1.3-RELEASE/tools/clang/lib/Frontend/InitHeaderSearch.cpp swift-llvm-swift-4.1.3-RELEASE+iPhone/tools/clang/lib/Frontend/InitHeaderSearch.cpp +--- swift-llvm-swift-4.1.3-RELEASE/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2018-03-17 03:34:33.000000000 -1000 ++++ swift-llvm-swift-4.1.3-RELEASE+iPhone/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2018-09-17 12:26:55.000000000 -1000 +@@ -348,6 +348,9 @@ + } + default: + AddPath("/usr/include", ExternCSystem, false); ++ if (!HasSysroot) { ++ AddPath("/usr/share/SDKs/iPhoneOS.sdk/usr/include", ExternCSystem, false); ++ } + break; + } + } +@@ -385,11 +388,21 @@ + "arm-apple-darwin10", "v7", "", triple); + AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2.1", + "arm-apple-darwin10", "v6", "", triple); ++ if (!HasSysroot) { ++ AddGnuCPlusPlusIncludePaths("/usr/share/SDKs/iPhoneOS.sdk/usr/include/c++/4.2.1", ++ "arm-apple-darwin10", "v7", "", triple); ++ AddGnuCPlusPlusIncludePaths("/usr/share/SDKs/iPhoneOS.sdk/usr/include/c++/4.2.1", ++ "arm-apple-darwin10", "v6", "", triple); ++ } + break; + + case llvm::Triple::aarch64: + AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2.1", + "arm64-apple-darwin10", "", "", triple); ++ if (!HasSysroot) { ++ AddGnuCPlusPlusIncludePaths("/usr/share/SDKs/iPhoneOS.sdk/usr/include/c++/4.2.1", ++ "arm64-apple-darwin10", "", "", triple); ++ } + break; + } + return; +@@ -483,6 +496,10 @@ + // Add the default framework include paths on Darwin. + if (HSOpts.UseStandardSystemIncludes) { + if (triple.isOSDarwin()) { ++ if (!HasSysroot) { ++ AddPath("/usr/share/SDKs/iPhoneOS.sdk/System/Library/Frameworks", System, true); ++ AddPath("/usr/share/SDKs/iPhoneOS.sdk/Library/Frameworks", System, true); ++ } + AddPath("/System/Library/Frameworks", System, true); + AddPath("/Library/Frameworks", System, true); + } diff --git a/data/llvm-clang/make.sh b/data/llvm-clang/make.sh new file mode 100644 index 000000000..bb215aef8 --- /dev/null +++ b/data/llvm-clang/make.sh @@ -0,0 +1,40 @@ +pkg:extract +cd swift-llvm-swift* +mv ../swift-clang-swift* tools/clang +pkg:patch +mkdir native +cd native +MACOSX_DEPLOYMENT_TARGET="$(sw_vers -productVersion | sed -e 's/\.[0-9]*$//')" CC="$(xcrun -f clang)" CXX="$(xcrun -f clang++)" cmake -j16 -DCMAKE_INSTALL_NAME_DIR="/usr/local/lib" -DCMAKE_INSTALL_LIBDIR="local/lib" -DLLVM_BUILD_LLVM_DYLIB=ON -DCMAKE_BUILD_TYPE=RELEASE -DLLVM_INCLUDE_TESTS=OFF .. +make -j16 llvm-tblgen clang-tblgen +cd .. +mkdir build +cd build + +cat >iphoneos_toolchain.cmake <<EOF +set(CMAKE_SYSTEM_NAME Darwin) # Tell CMake we're cross-compiling +set(CMAKE_CROSSCOMPILING true) +#include(CMakeForceCompiler) +# Prefix detection only works with compiler id "GNU" +# CMake will look for prefixed g++, cpp, ld, etc. automatically +set(CMAKE_SYSTEM_PROCESSOR aarch64) +set(triple ${PKG_TARG}) +set(CMAKE_FIND_ROOT_PATH $(echo ${PKG_PATH} | sed -e s/:/' '/g)) +set(CMAKE_LIBRARY_PATH $(echo ${LIBRARY_PATH} | sed -e s/:/' '/g)) +set(CMAKE_INCLUDE_PATH $(echo ${INCLUDE_PATH} | sed -e s/:/' '/g)) +set(CMAKE_C_COMPILER ${PKG_TARG}-gcc) +set(CMAKE_CXX_COMPILER ${PKG_TARG}-g++) +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +EOF + +unset MACOSX_DEPLOYMENT_TARGET +cmake -j32 -DCMAKE_TOOLCHAIN_FILE=iphoneos_toolchain.cmake -DCMAKE_INSTALL_NAME_DIR="/usr/local/lib" -DCMAKE_INSTALL_LIBDIR="local/lib" -DCMAKE_INSTALL_RPATH="/usr/" -DCMAKE_OSX_SYSROOT="${PKG_ROOT}" -DCMAKE_INSTALL_PREFIX="/usr/" -DLLVM_INCLUDE_TESTS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_SYSTEM_NAME=Darwin -DLLVM_TABLEGEN="$(pwd)/../native/bin/llvm-tblgen" -DCLANG_TABLEGEN="$(pwd)/../native/bin/clang-tblgen" -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_DEFAULT_TARGET_TRIPLE="$(echo ${PKG_TARG} | sed -e s/aarch64/arm64/ -e 's/darwin.*/darwin/')" .. + +make -j32 +pkg:install +pkg: mkdir -p /usr/local/lib +mv ${PKG_DEST}/usr/lib/*.dylib ${PKG_DEST}/usr/local/lib +pkg: find /usr/lib -name '*.a' -exec rm {} + +pkg: mkdir -p /usr/share/SDKs +cd .. diff --git a/data/boost_/boost_1_34_1.tar.gz b/data/llvm-clang/swift-clang-4.1.3-RELEASE.tar.gz Binary files differindex da01fdb6b..d4ea5a51f 100644 --- a/data/boost_/boost_1_34_1.tar.gz +++ b/data/llvm-clang/swift-clang-4.1.3-RELEASE.tar.gz diff --git a/data/llvm-clang/swift-llvm-4.1.3-RELEASE.tar.gz b/data/llvm-clang/swift-llvm-4.1.3-RELEASE.tar.gz Binary files differnew file mode 100644 index 000000000..795b66ce8 --- /dev/null +++ b/data/llvm-clang/swift-llvm-4.1.3-RELEASE.tar.gz diff --git a/data/minicom/_metadata/version b/data/minicom/_metadata/version index 8bbe6cf74..860487ca1 100644 --- a/data/minicom/_metadata/version +++ b/data/minicom/_metadata/version @@ -1 +1 @@ -2.2 +2.7.1 diff --git a/data/minicom/extern.diff b/data/minicom/extern.diff new file mode 100644 index 000000000..216d56f4e --- /dev/null +++ b/data/minicom/extern.diff @@ -0,0 +1,31 @@ +diff -ur minicom-2.7.1/src/minicom.h minicom-2.7.1+iPhone/src/minicom.h +--- minicom-2.7.1/src/minicom.h 2013-12-08 00:26:03.000000000 -1000 ++++ minicom-2.7.1+iPhone/src/minicom.h 2018-08-18 18:24:02.000000000 -1000 +@@ -109,13 +109,13 @@ + + EXTERN char *dial_name; /* System we're conneced to */ + EXTERN char *dial_number; /* Number we've dialed. */ +-EXTERN char *dial_user; /* Our username there */ +-EXTERN char *dial_pass; /* Our password */ ++extern char *dial_user; /* Our username there */ ++extern char *dial_pass; /* Our password */ + + #ifdef USE_SOCKET +-EXTERN int portfd_is_socket; /* File descriptor is a unix socket */ +-EXTERN int portfd_is_connected; /* 1 if the socket is connected */ +-EXTERN struct sockaddr_un portfd_sock_addr; /* the unix socket address */ ++extern int portfd_is_socket; /* File descriptor is a unix socket */ ++extern int portfd_is_connected; /* 1 if the socket is connected */ ++extern struct sockaddr_un portfd_sock_addr; /* the unix socket address */ + #define portfd_connected ((portfd_is_socket && !portfd_is_connected) \ + ? -1 : portfd) + #else +@@ -141,7 +141,7 @@ + EXTERN int st_attr; /* Status Bar attributes. */ + + /* jl 04.09.97 conversion tables */ +-EXTERN unsigned char vt_outmap[256], vt_inmap[256]; ++extern unsigned char vt_outmap[256], vt_inmap[256]; + + /* MARK updated 02/17/95 - history buffer */ + EXTERN int num_hist_lines; /* History buffer size */ diff --git a/data/minicom/make.sh b/data/minicom/make.sh index 452a4bfd5..fbc999151 100644 --- a/data/minicom/make.sh +++ b/data/minicom/make.sh @@ -1,4 +1,4 @@ pkg:setup pkg:configure -make +make -j8 pkg:install diff --git a/data/minicom/minicom-2.2.tar.gz b/data/minicom/minicom-2.2.tar.gz Binary files differdeleted file mode 100644 index 1637a8993..000000000 --- a/data/minicom/minicom-2.2.tar.gz +++ /dev/null diff --git a/data/minicom/minicom-2.7.1.tar.gz b/data/minicom/minicom-2.7.1.tar.gz Binary files differnew file mode 100644 index 000000000..a4f7b8c2b --- /dev/null +++ b/data/minicom/minicom-2.7.1.tar.gz diff --git a/data/minicom/timestamp.diff b/data/minicom/timestamp.diff index 6945ae8f7..15ad9b564 100644 --- a/data/minicom/timestamp.diff +++ b/data/minicom/timestamp.diff @@ -1,7 +1,7 @@ -diff -ru minicom-2.2/src/minicom.c minicom-2.2+iPhone/src/minicom.c ---- minicom-2.2/src/minicom.c 2005-10-31 12:13:51.000000000 +0000 -+++ minicom-2.2+iPhone/src/minicom.c 2008-06-18 01:41:33.000000000 +0000 -@@ -1028,9 +1028,6 @@ +diff -ur minicom-2.7.1/src/minicom.c minicom-2.7.1+iPhone/src/minicom.c +--- minicom-2.7.1/src/minicom.c 2013-12-08 00:34:44.000000000 -1000 ++++ minicom-2.7.1+iPhone/src/minicom.c 2018-08-18 11:44:56.000000000 -1000 +@@ -1159,9 +1159,6 @@ switch(c) { case 'v': printf(_("%s version %s"), PACKAGE, VERSION); @@ -11,14 +11,15 @@ diff -ru minicom-2.2/src/minicom.c minicom-2.2+iPhone/src/minicom.c printf("\n"); printf(_("Copyright (C) Miquel van Smoorenburg.\n\n")); printf("This program is free software; you can redistribute it and/or\n" -@@ -1340,9 +1337,7 @@ +@@ -1462,9 +1459,6 @@ - wprintf(us, "\n%s %s\r\n", _("Welcome to minicom"), VERSION); - wprintf(us, "\n%s: %s\r\n", _("OPTIONS"), option_string); + mc_wprintf(us, "\n%s %s\r\n", _("Welcome to minicom"), VERSION); + mc_wprintf(us, "\n%s: %s\r\n", _("OPTIONS"), option_string); -#if defined (__DATE__) && defined (__TIME__) -- wprintf(us, "%s %s, %s.\r\n",_("Compiled on"), __DATE__,__TIME__); +- mc_wprintf(us, "%s %s, %s.\r\n",_("Compiled on"), __DATE__,__TIME__); -#endif -+ - wprintf(us, "Port %s\n", P_PORT); - wprintf(us, _("\nPress %sZ for help on special keys%c\n\n"),esc_key(),'\r'); - + { + struct stat st; + char port_date[20] = ""; +Only in minicom-2.7.1+iPhone/src: minicom.c.orig +Only in minicom-2.7.1+iPhone/src: minicom.c.rej diff --git a/data/minicom/types.diff b/data/minicom/types.diff deleted file mode 100644 index 153cf813c..000000000 --- a/data/minicom/types.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru minicom-2.2/src/minicom.h minicom-2.2+iPhone/src/minicom.h ---- minicom-2.2/src/minicom.h 2005-10-31 11:10:57.000000000 +0000 -+++ minicom-2.2+iPhone/src/minicom.h 2008-01-02 00:24:32.000000000 +0000 -@@ -34,6 +34,8 @@ - #include <sys/un.h> - #endif - -+#include <sys/types.h> -+ - /* - * kubota@debian.or.jp 08/08/98 - * COLS must be equal to or less than MAXCOLS. diff --git a/data/minicom/wprintf.diff b/data/minicom/wprintf.diff deleted file mode 100644 index 01d7b8d06..000000000 --- a/data/minicom/wprintf.diff +++ /dev/null @@ -1,1157 +0,0 @@ -diff -ru minicom-2.2/src/config.c minicom-2.2+iPhone/src/config.c ---- minicom-2.2/src/config.c 2006-04-02 09:52:30.000000000 +0000 -+++ minicom-2.2+iPhone/src/config.c 2008-01-02 00:20:52.000000000 +0000 -@@ -253,9 +253,9 @@ - w = wopen(5, 4, 75, 8, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1); - - wtitle(w, TMID, _("Logging options")); -- wprintf(w, "%s %s\n", logfnstr, P_LOGFNAME); -- wprintf(w, "%s %s\n", logconn, _(P_LOGCONN)); -- wprintf(w, "%s %s\n", logxfer, _(P_LOGXFER)); -+ wprintf_(w, "%s %s\n", logfnstr, P_LOGFNAME); -+ wprintf_(w, "%s %s\n", logconn, _(P_LOGCONN)); -+ wprintf_(w, "%s %s\n", logxfer, _(P_LOGXFER)); - wlocate(w, 4, 4); - wputs(w, question); - wredraw(w, 1); -@@ -274,13 +274,13 @@ - case 'B': - strcpy(P_LOGCONN, yesno(P_LOGCONN[0] == 'N')); - wlocate(w, mbslen(logconn) + 1, 1); -- wprintf(w, "%s ", _(P_LOGCONN)); -+ wprintf_(w, "%s ", _(P_LOGCONN)); - markch(P_LOGCONN); - break; - case 'C': - strcpy(P_LOGXFER, yesno(P_LOGXFER[0] == 'N')); - wlocate(w, mbslen(logxfer) + 1, 2); -- wprintf(w, "%s ", _(P_LOGXFER)); -+ wprintf_(w, "%s ", _(P_LOGXFER)); - markch(P_LOGXFER); - break; - default: -@@ -305,13 +305,13 @@ - char *question = _("Change which setting?"); - - w = wopen(5, 5, 75, 12, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1); -- wprintf(w, "%s %.44s\n", download_directory, P_DOWNDIR); -- wprintf(w, "%s %.44s\n", upload_directory, P_UPDIR); -- wprintf(w, "%s %.44s\n", script_directory, P_SCRIPTDIR); -- wprintf(w, "%s %.44s\n", script_program, P_SCRIPTPROG); -- wprintf(w, "%s %.44s\n", kermit_program, P_KERMIT); -+ wprintf_(w, "%s %.44s\n", download_directory, P_DOWNDIR); -+ wprintf_(w, "%s %.44s\n", upload_directory, P_UPDIR); -+ wprintf_(w, "%s %.44s\n", script_directory, P_SCRIPTDIR); -+ wprintf_(w, "%s %.44s\n", script_program, P_SCRIPTPROG); -+ wprintf_(w, "%s %.44s\n", kermit_program, P_KERMIT); - #ifdef LOGFILE -- wprintf(w, "%s\n", log_settings); -+ wprintf_(w, "%s\n", log_settings); - #endif - wlocate(w, 4, 8); - wputs(w, question); -@@ -381,7 +381,7 @@ - pgets(w, 15, n+1, P_PPROG(n), 31, 64); - do { - wlocate(w, 47, n + 1); -- wprintf(w, "%c", P_PNN(n)); -+ wprintf_(w, "%c", P_PNN(n)); - c = rwxgetch(); - if (c == 'Y') - P_PNN(n) = 'Y'; -@@ -390,7 +390,7 @@ - } while (c != '\r' && c != '\n'); - do { - wlocate(w, 52, n + 1); -- wprintf(w, "%c", P_PUD(n)); -+ wprintf_(w, "%c", P_PUD(n)); - c = rwxgetch(); - if (c == 'U') - P_PUD(n) = 'U'; -@@ -399,7 +399,7 @@ - } while (c != '\r' && c != '\n'); - do { - wlocate(w, 57, n + 1); -- wprintf(w, "%c", P_PFULL(n)); -+ wprintf_(w, "%c", P_PFULL(n)); - c = rwxgetch(); - if (c == 'Y') - P_PFULL(n) = 'Y'; -@@ -408,7 +408,7 @@ - } while (c != '\r' && c != '\n'); - do { - wlocate(w, 65, n + 1); -- wprintf(w, "%c", P_PIORED(n)); -+ wprintf_(w, "%c", P_PIORED(n)); - c = rwxgetch(); - if (c == 'Y') - P_PIORED(n) = 'Y'; -@@ -417,7 +417,7 @@ - } while (c != '\r' && c != '\n'); - do { - wlocate(w, 73, n + 1); -- wprintf(w, "%c", P_MUL(n)); -+ wprintf_(w, "%c", P_MUL(n)); - c = rwxgetch(); - if (c == 'Y') - P_MUL(n) = 'Y'; -@@ -449,21 +449,21 @@ - for (f = 0; f < 12; f++) { - wlocate(w, 1, f + 1); - if (P_PNAME(f)[0]) -- wprintf(w, "%c %-10.10s %-31.31s %c %c %c %c %c", -+ wprintf_(w, "%c %-10.10s %-31.31s %c %c %c %c %c", - 'A' + f, - P_PNAME(f), P_PPROG(f), - P_PNN(f), P_PUD(f), - P_PFULL(f), P_PIORED(f), - P_MUL(f)); - else -- wprintf(w, "%c -", 'A' + f); -+ wprintf_(w, "%c -", 'A' + f); - } - wlocate(w, 1, 13); -- wprintf(w, "%s %c", zmodem_download, P_PAUTO[0]); -+ wprintf_(w, "%s %c", zmodem_download, P_PAUTO[0]); - wlocate(w, 1, 14); -- wprintf(w, "%s %s", use_filename_selection, _(P_FSELW)); -+ wprintf_(w, "%s %s", use_filename_selection, _(P_FSELW)); - wlocate(w, 1, 15); -- wprintf(w, "%s %s", prompt_downdir, _(P_ASKDNDIR)); -+ wprintf_(w, "%s %s", prompt_downdir, _(P_ASKDNDIR)); - - wlocate(w, 3, 17); - wputs(w, question); -@@ -492,17 +492,17 @@ - } - else if (c == 'M') { - wlocate(w, mbslen (zmodem_download) + 2, 13); -- wprintf(w, " \b"); -+ wprintf_(w, " \b"); - c = rwxgetch(); - if (c >= 'A' && c <= 'L') { - P_PAUTO[0] = c; - markch(P_PAUTO); -- wprintf(w, "%c", c); -+ wprintf_(w, "%c", c); - } else if (c == '\n' || c == ' ') { - P_PAUTO[0] = ' '; - markch(P_PAUTO); - } else { -- wprintf(w, "%c", P_PAUTO[0]); -+ wprintf_(w, "%c", P_PAUTO[0]); - } - c = 0; - } -@@ -511,11 +511,11 @@ - if (P_FSELW[0] == 'N') { - strcpy(P_ASKDNDIR, "No "); - wlocate(w, mbslen (prompt_downdir) + 2, 15); -- wprintf(w, "%s ", _(P_ASKDNDIR)); -+ wprintf_(w, "%s ", _(P_ASKDNDIR)); - markch(P_ASKDNDIR); - } - wlocate(w, mbslen (use_filename_selection) + 2, 14); -- wprintf(w, "%s ", _(P_FSELW)); -+ wprintf_(w, "%s ", _(P_FSELW)); - markch(P_FSELW); - } - else if (c == 'O') { -@@ -523,11 +523,11 @@ - if (P_ASKDNDIR[0] == 'Y') { - strcpy(P_FSELW, "Yes"); - wlocate(w, mbslen (use_filename_selection) + 2, 14); -- wprintf(w, "%s ", _(P_FSELW)); -+ wprintf_(w, "%s ", _(P_FSELW)); - markch(P_FSELW); - } - wlocate(w, mbslen (prompt_downdir) + 2, 15); -- wprintf(w, "%s ", _(P_ASKDNDIR)); -+ wprintf_(w, "%s ", _(P_ASKDNDIR)); - markch(P_ASKDNDIR); - } - } while (c != '\n'); -@@ -547,14 +547,14 @@ - char *question = _("Change which setting?"); - - w = wopen(5, 4, 75, 12, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1); -- wprintf(w, "%s %.41s\n", serial_device, P_PORT); -- wprintf(w, "%s %.41s\n", lockfile_location, P_LOCK); -- wprintf(w, "%s %.41s\n", callin_program, P_CALLIN); -- wprintf(w, "%s %.41s\n", callout_program, P_CALLOUT); -- wprintf(w, "%s %s %s%s%s\n", -+ wprintf_(w, "%s %.41s\n", serial_device, P_PORT); -+ wprintf_(w, "%s %.41s\n", lockfile_location, P_LOCK); -+ wprintf_(w, "%s %.41s\n", callin_program, P_CALLIN); -+ wprintf_(w, "%s %.41s\n", callout_program, P_CALLOUT); -+ wprintf_(w, "%s %s %s%s%s\n", - bps_par_bits, P_BAUDRATE, P_BITS, P_PARITY, P_STOPB); -- wprintf(w, "%s %s\n", hardware_flow_control, _(P_HASRTS)); -- wprintf(w, "%s %s\n", software_flow_control, _(P_HASXON)); -+ wprintf_(w, "%s %s\n", hardware_flow_control, _(P_HASRTS)); -+ wprintf_(w, "%s %s\n", software_flow_control, _(P_HASXON)); - wlocate(w, 4, 8); - wputs(w, question); - wredraw(w, 1); -@@ -582,7 +582,7 @@ - if (portfd >= 0) - port_init(); - wlocate(w, mbslen (bps_par_bits) + 1, 4); -- wprintf(w, "%s %s%s%s \n", -+ wprintf_(w, "%s %s%s%s \n", - P_BAUDRATE, P_BITS, P_PARITY, P_STOPB); - if (st) - mode_status(); -@@ -594,7 +594,7 @@ - case 'F': - strcpy(P_HASRTS, yesno(P_HASRTS[0] == 'N')); - wlocate(w, mbslen (hardware_flow_control) + 1, 5); -- wprintf(w, "%s ", _(P_HASRTS)); -+ wprintf_(w, "%s ", _(P_HASRTS)); - if (portfd >= 0) - port_init(); - markch(P_HASRTS); -@@ -602,7 +602,7 @@ - case 'G': - strcpy(P_HASXON, yesno(P_HASXON[0] == 'N')); - wlocate(w, mbslen (software_flow_control) + 1, 6); -- wprintf(w, "%s ", _(P_HASXON)); -+ wprintf_(w, "%s ", _(P_HASXON)); - if (portfd >= 0) - port_init(); - markch(P_HASXON); -@@ -652,39 +652,39 @@ - - dirflush = 0; - wtitle(w, TMID, _("Modem and dialing parameter setup")); -- wprintf(w, "\n"); -- wprintf(w, "%s %.48s\n", init_string, P_MINIT); -- wprintf(w, "%s %.48s\n", reset_string, P_MRESET); -- wprintf(w, "%s %.48s\n", dialing_prefix_1, P_MDIALPRE); -- wprintf(w, "%s %.48s\n", dialing_suffix_1, P_MDIALSUF); -- wprintf(w, "%s %.48s\n", dialing_prefix_2, P_MDIALPRE2); -- wprintf(w, "%s %.48s\n", dialing_suffix_2, P_MDIALSUF2); -- wprintf(w, "%s %.48s\n", dialing_prefix_3, P_MDIALPRE3); -- wprintf(w, "%s %.48s\n", dialing_suffix_3, P_MDIALSUF3); -- wprintf(w, "%s %.48s\n", connect_string, P_MCONNECT); -- wprintf(w, "%s %-20.20s %.20s\n", no_connect_strings, P_MNOCON1, P_MNOCON2); -+ wprintf_(w, "\n"); -+ wprintf_(w, "%s %.48s\n", init_string, P_MINIT); -+ wprintf_(w, "%s %.48s\n", reset_string, P_MRESET); -+ wprintf_(w, "%s %.48s\n", dialing_prefix_1, P_MDIALPRE); -+ wprintf_(w, "%s %.48s\n", dialing_suffix_1, P_MDIALSUF); -+ wprintf_(w, "%s %.48s\n", dialing_prefix_2, P_MDIALPRE2); -+ wprintf_(w, "%s %.48s\n", dialing_suffix_2, P_MDIALSUF2); -+ wprintf_(w, "%s %.48s\n", dialing_prefix_3, P_MDIALPRE3); -+ wprintf_(w, "%s %.48s\n", dialing_suffix_3, P_MDIALSUF3); -+ wprintf_(w, "%s %.48s\n", connect_string, P_MCONNECT); -+ wprintf_(w, "%s %-20.20s %.20s\n", no_connect_strings, P_MNOCON1, P_MNOCON2); - wlocate(w, mbslen (no_connect_strings) + 1, 11); -- wprintf(w, "%-20.20s %.20s\n", P_MNOCON3, P_MNOCON4); -- wprintf(w, "%s %.48s\n", hangup_string, P_MHANGUP); -- wprintf(w, "%s %.48s\n", dial_cancel_string, P_MDIALCAN); -- wprintf(w, "\n"); -- wprintf(w, "%s %.3s\n", dial_time, P_MDIALTIME); -- wprintf(w, "%s %.3s\n", delay_before_redial, P_MRDELAY); -- wprintf(w, "%s %.3s\n", number_of_tries, P_MRETRIES); -- wprintf(w, "%s %.3s\n", dtr_drop_time, P_MDROPDTR); -+ wprintf_(w, "%-20.20s %.20s\n", P_MNOCON3, P_MNOCON4); -+ wprintf_(w, "%s %.48s\n", hangup_string, P_MHANGUP); -+ wprintf_(w, "%s %.48s\n", dial_cancel_string, P_MDIALCAN); -+ wprintf_(w, "\n"); -+ wprintf_(w, "%s %.3s\n", dial_time, P_MDIALTIME); -+ wprintf_(w, "%s %.3s\n", delay_before_redial, P_MRDELAY); -+ wprintf_(w, "%s %.3s\n", number_of_tries, P_MRETRIES); -+ wprintf_(w, "%s %.3s\n", dtr_drop_time, P_MDROPDTR); - wlocate(w, 34, 15); -- wprintf(w, "%s %s\n", auto_bps_detect, _(P_MAUTOBAUD)); -+ wprintf_(w, "%s %s\n", auto_bps_detect, _(P_MAUTOBAUD)); - wlocate(w, 34, 16); -- wprintf(w, "%s %s\n", modem_has_dcd_line, _(P_HASDCD)); -+ wprintf_(w, "%s %s\n", modem_has_dcd_line, _(P_HASDCD)); - wlocate(w, 34, 17); -- wprintf(w, "%s %s\n", shown_speed, sspd(P_SHOWSPD)); -+ wprintf_(w, "%s %s\n", shown_speed, sspd(P_SHOWSPD)); - wlocate(w, 34, 18); /* Option for multi-node untag */ -- wprintf(w, "%s %s\n", multi_node, _(P_MULTILINE)); /* er 18-Apr-99 */ -+ wprintf_(w, "%s %s\n", multi_node, _(P_MULTILINE)); /* er 18-Apr-99 */ - - wlocate(w, 1, 20); -- wprintf(w, "%s ", question); -+ wprintf_(w, "%s ", question); - x = w->curx; y = w->cury; -- wprintf(w, _(" (Return or Esc to exit)")); -+ wprintf_(w, _(" (Return or Esc to exit)")); - wredraw(w, 1); - - while (1) { -@@ -826,36 +826,36 @@ - - wtitle(w, TMID, _("Screen and keyboard")); - -- wprintf(w, "\n%s %s\n", command_key, P_ESCAPE); -- wprintf(w, "%s %s\n", backspace_key, P_BACKSPACE); -- wprintf(w, "%s %s\n", status_line, _(P_STATLINE)); -- wprintf(w, "%s %s\n", alarm_sound, _(P_SOUND)); -+ wprintf_(w, "\n%s %s\n", command_key, P_ESCAPE); -+ wprintf_(w, "%s %s\n", backspace_key, P_BACKSPACE); -+ wprintf_(w, "%s %s\n", status_line, _(P_STATLINE)); -+ wprintf_(w, "%s %s\n", alarm_sound, _(P_SOUND)); - /* fmg - colors support */ -- wprintf(w, "%s %s\n", foreground_color_menu, _(J_col[mfcolor])); -- wprintf(w, "%s %s\n", background_color_menu, _(J_col[mbcolor])); -- wprintf(w, "%s %s\n", foreground_color_term, _(J_col[tfcolor])); -- wprintf(w, "%s %s\n", background_color_term, _(J_col[tbcolor])); -- wprintf(w, "%s %s\n", foreground_color_stat, _(J_col[sfcolor])); -- wprintf(w, "%s %s\n", background_color_stat, _(J_col[sbcolor])); -+ wprintf_(w, "%s %s\n", foreground_color_menu, _(J_col[mfcolor])); -+ wprintf_(w, "%s %s\n", background_color_menu, _(J_col[mbcolor])); -+ wprintf_(w, "%s %s\n", foreground_color_term, _(J_col[tfcolor])); -+ wprintf_(w, "%s %s\n", background_color_term, _(J_col[tbcolor])); -+ wprintf_(w, "%s %s\n", foreground_color_stat, _(J_col[sfcolor])); -+ wprintf_(w, "%s %s\n", background_color_stat, _(J_col[sbcolor])); - - /* MARK updated 02/17/95 - Configurable history buffer size */ -- wprintf(w, "%s %s\n", history_buffer_size, P_HISTSIZE); -+ wprintf_(w, "%s %s\n", history_buffer_size, P_HISTSIZE); - - /* fmg - macros support */ -- wprintf(w, "%s %s\n", macros_file, P_MACROS); -- wprintf(w, _(" M - Edit Macros\n")); -- wprintf(w, "%s %s\n", macros_enabled, _(P_MACENAB)); -- wprintf(w, "%s %s\n", character_conversion, P_CONVF); -+ wprintf_(w, "%s %s\n", macros_file, P_MACROS); -+ wprintf_(w, _(" M - Edit Macros\n")); -+ wprintf_(w, "%s %s\n", macros_enabled, _(P_MACENAB)); -+ wprintf_(w, "%s %s\n", character_conversion, P_CONVF); - -- wprintf(w, "%s %s\n", add_linefeed, P_ADDLINEFEED); -- wprintf(w, "%s %s\n", local_echo, P_LOCALECHO); -+ wprintf_(w, "%s %s\n", add_linefeed, P_ADDLINEFEED); -+ wprintf_(w, "%s %s\n", local_echo, P_LOCALECHO); - - wredraw(w, 1); - - while (1) { - if (clr) { - wlocate(w, 2, maxy - miny); -- wprintf(w, "%s ", question); -+ wprintf_(w, "%s ", question); - wclreol(w); - clr = 0; - } else -@@ -961,7 +961,7 @@ - else - psets(P_BACKSPACE, "DEL"); - wlocate(w, mbslen (backspace_key) + 1, 2); -- wprintf(w, "%s ", P_BACKSPACE); -+ wprintf_(w, "%s ", P_BACKSPACE); - keyboard(KSETBS, P_BACKSPACE[0] == 'B' ? 8 : 127); - break; - case 'C': -@@ -975,12 +975,12 @@ - tempst = 0; - } - wlocate(w, mbslen (status_line) + 1, 3); -- wprintf(w, "%s ", _(P_STATLINE)); -+ wprintf_(w, "%s ", _(P_STATLINE)); - break; - case 'D': - psets(P_SOUND, yesno(P_SOUND[0] == 'N')); - wlocate(w, mbslen (alarm_sound) + 1, 4); -- wprintf(w, "%s", _(P_SOUND)); -+ wprintf_(w, "%s", _(P_SOUND)); - break; - case 'E': /* fmg - letters cycle colors */ - if (mfcolor == WHITE) -@@ -989,7 +989,7 @@ - mfcolor++; - psets(P_MFG, J_col[mfcolor]); - wlocate(w, mbslen (foreground_color_menu) + 1, 5); -- wprintf(w, "%s ", _(J_col[mfcolor])); -+ wprintf_(w, "%s ", _(J_col[mfcolor])); - break; - case 'F': /* fmg - letters cycle colors */ - if (mbcolor == WHITE) -@@ -998,7 +998,7 @@ - mbcolor++; - psets(P_MBG, J_col[mbcolor]); - wlocate(w, mbslen (background_color_menu) + 1, 6); -- wprintf(w, "%s ", _(J_col[mbcolor])); -+ wprintf_(w, "%s ", _(J_col[mbcolor])); - break; - case 'G': /* fmg - letters cycle colors */ - if (tfcolor == WHITE) -@@ -1007,7 +1007,7 @@ - tfcolor++; - psets(P_TFG, J_col[tfcolor]); - wlocate(w, mbslen (foreground_color_term) + 1, 7); -- wprintf(w, "%s ", _(J_col[tfcolor])); -+ wprintf_(w, "%s ", _(J_col[tfcolor])); - if (us) - vt_pinit(us, tfcolor, tbcolor); - break; -@@ -1018,7 +1018,7 @@ - tbcolor++; - psets(P_TBG, J_col[tbcolor]); - wlocate(w, mbslen (background_color_term) + 1, 8); -- wprintf(w, "%s ", _(J_col[tbcolor])); -+ wprintf_(w, "%s ", _(J_col[tbcolor])); - if (us) - vt_pinit(us, tfcolor, tbcolor); - break; -@@ -1039,7 +1039,7 @@ - } - psets(P_SFG, J_col[sfcolor]); - wlocate(w, mbslen (foreground_color_stat) + 1, 9); -- wprintf(w, "%s ", _(J_col[sfcolor])); -+ wprintf_(w, "%s ", _(J_col[sfcolor])); - break; - case 'J': /* fmg - letters cycle colors & redraw stat line */ - if (sbcolor == WHITE) -@@ -1058,7 +1058,7 @@ - } - psets(P_SBG, J_col[sbcolor]); - wlocate(w, mbslen (background_color_stat) + 1, 10); -- wprintf(w, "%s ", _(J_col[sbcolor])); -+ wprintf_(w, "%s ", _(J_col[sbcolor])); - break; - case 'K': /* MARK updated 02/17/95 - Config history size */ - pgets(w, mbslen (history_buffer_size) + 1, 11, -@@ -1074,7 +1074,7 @@ - strcpy(P_HISTSIZE,"5000"); - - wlocate(w, mbslen (history_buffer_size) + 1, 11); -- wprintf(w, "%s ", P_HISTSIZE); -+ wprintf_(w, "%s ", P_HISTSIZE); - break; - case 'L': /* fmg - get local macros storage file */ - pgets(w, mbslen (macros_file) + 1, 12, P_MACROS, 64, 64); -@@ -1106,22 +1106,22 @@ - case 'N': - psets(P_MACENAB, yesno(P_MACENAB[0] == 'N')); - wlocate(w, mbslen (macros_enabled) + 1, 14); -- wprintf(w, "%s", _(P_MACENAB)); -+ wprintf_(w, "%s", _(P_MACENAB)); - break; - case 'O': /* Character conversions - jl / 04.09.97 */ - doconv(); - wlocate(w, mbslen (character_conversion) + 1, 15); -- wprintf(w, "%-16.16s", _(P_CONVF)); -+ wprintf_(w, "%-16.16s", _(P_CONVF)); - break; - case 'P': - psets(P_ADDLINEFEED, yesno(P_ADDLINEFEED[0] == 'N')); - wlocate(w, strlen (add_linefeed) + 1, 15); -- wprintf(w, "%s", _(P_ADDLINEFEED)); -+ wprintf_(w, "%s", _(P_ADDLINEFEED)); - break; - case 'Q': - psets(P_LOCALECHO, yesno(P_LOCALECHO[0] == 'N')); - wlocate(w, strlen (local_echo) + 1, 16); -- wprintf(w, "%s", _(P_LOCALECHO)); -+ wprintf_(w, "%s", _(P_LOCALECHO)); - break; - } - } -@@ -1148,12 +1148,12 @@ - - w = wopen(15, 7, 64, 15, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1); - wtitle(w, TMID, _("Terminal settings")); -- wprintf(w, "\n"); -- wprintf(w, "%s %s\n", terminal_emulation, terminal == VT100 ? "VT102" : "ANSI"); -- wprintf(w, "%s %s\n", backspace_key_sends, P_BACKSPACE); -- wprintf(w, "%s %s\n", status_line, _(P_STATLINE)); -- wprintf(w, "%s %d\n", msg_nl_delay, vt_nl_delay); -- wprintf(w, "%s %s\n", msg_answerback, P_ANSWERBACK); -+ wprintf_(w, "\n"); -+ wprintf_(w, "%s %s\n", terminal_emulation, terminal == VT100 ? "VT102" : "ANSI"); -+ wprintf_(w, "%s %s\n", backspace_key_sends, P_BACKSPACE); -+ wprintf_(w, "%s %s\n", status_line, _(P_STATLINE)); -+ wprintf_(w, "%s %d\n", msg_nl_delay, vt_nl_delay); -+ wprintf_(w, "%s %s\n", msg_answerback, P_ANSWERBACK); - wlocate(w, 4, 7); - wputs(w, question); - -@@ -1180,9 +1180,9 @@ - psets(P_BACKSPACE, "DEL"); - } - wlocate(w, mbslen (terminal_emulation) + 1, 1); -- wprintf(w, "%s ", new_term == VT100 ? "VT102" : "ANSI"); -+ wprintf_(w, "%s ", new_term == VT100 ? "VT102" : "ANSI"); - wlocate(w, mbslen (backspace_key_sends) + 1, 2); -- wprintf(w, "%s ", P_BACKSPACE); -+ wprintf_(w, "%s ", P_BACKSPACE); - keyboard(KSETBS, P_BACKSPACE[0] == 'B' ? 8 : 127); - break; - case 'B': -@@ -1191,7 +1191,7 @@ - else - psets(P_BACKSPACE, "DEL"); - wlocate(w, mbslen (backspace_key_sends) + 1, 2); -- wprintf(w, "%s ", P_BACKSPACE); -+ wprintf_(w, "%s ", P_BACKSPACE); - keyboard(KSETBS, P_BACKSPACE[0] == 'B' ? 8 : 127); - break; - case 'C': -@@ -1205,7 +1205,7 @@ - tempst = 0; - } - wlocate(w, mbslen (status_line) + 1, 3); -- wprintf(w, "%s ", _(P_STATLINE)); -+ wprintf_(w, "%s ", _(P_STATLINE)); - break; - case 'D': - sprintf(buf, "%d", vt_nl_delay); -@@ -1213,7 +1213,7 @@ - wgets(w, buf, 4, 4); - vt_nl_delay = atoi(buf); - wlocate(w, mbslen(msg_nl_delay) +1, 4); -- wprintf(w, "%-3d", vt_nl_delay); -+ wprintf_(w, "%-3d", vt_nl_delay); - break; - case 'E': - pgets(w, strlen(msg_answerback) + 1, 5, P_ANSWERBACK, 50, 50); -@@ -1423,7 +1423,7 @@ - - while (1) { - wlocate(w, 1, 1); -- wprintf(w, _("Current: %5s %s%s%s "), ba, bi, pa, stopb); -+ wprintf_(w, _("Current: %5s %s%s%s "), ba, bi, pa, stopb); - wlocate(w, x, y); - wflush(); - c = wxgetch(); -@@ -1537,7 +1537,7 @@ - */ - static void out_mac(WIN *w, char *s, char n) - { -- wprintf(w, " %c : %.67s\n", n, s ? s : "[none]"); -+ wprintf_(w, " %c : %.67s\n", n, s ? s : "[none]"); - } - - /* -@@ -1553,7 +1553,7 @@ - w = wopen(3, 6, 75, 24, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1); - wtitle(w, TMID, _("F1 to F10 Macros")); - -- wprintf(w, "\n"); -+ wprintf_(w, "\n"); - out_mac(w,mmacs[Jm++].value, Jch++); - out_mac(w,mmacs[Jm++].value, Jch++); - out_mac(w,mmacs[Jm++].value, Jch++); -@@ -1579,7 +1579,7 @@ - wputs(w, _(" = 19200 8N1. (See the \"Comm Parameters\" menu for valid values of X.))")); - if (clr) { - wlocate(w, 1, 12); -- wprintf(w, "%s ", question); -+ wprintf_(w, "%s ", question); - wclreol(w); - clr = 0; - } else -@@ -1682,34 +1682,34 @@ - while (1) { - if (redraw) { - winclr(w); -- wprintf(w, -+ wprintf_(w, - _(" char in out char in out char in out char in out\n")); - for (i = offs, j = i+h, k = j+h, l = k+h; - i < offs+h && i < 256; - i++, j++, k++, l++) { -- wprintf(w, "%3d (%c) %3d %3d ", -+ wprintf_(w, "%3d (%c) %3d %3d ", - i, prch(i), (int) vt_inmap[i], (int) vt_outmap[i]); - if (j < 256) -- wprintf(w, "%3d (%c) %3d %3d ", -+ wprintf_(w, "%3d (%c) %3d %3d ", - j, prch(j), (int) vt_inmap[j], (int) vt_outmap[j]); - else -- wprintf(w, " "); -+ wprintf_(w, " "); - if (k < 256) -- wprintf(w, "%3d (%c) %3d %3d ", -+ wprintf_(w, "%3d (%c) %3d %3d ", - k, prch(k), (int) vt_inmap[k], (int) vt_outmap[k]); - else -- wprintf(w, " "); -+ wprintf_(w, " "); - if (l < 256) -- wprintf(w, "%3d (%c) %3d %3d\n", -+ wprintf_(w, "%3d (%c) %3d %3d\n", - l, prch(l), (int) vt_inmap[l], (int) vt_outmap[l]); - else -- wprintf(w, " \n"); -+ wprintf_(w, " \n"); - } -- wprintf(w, _("\n A - load table\tB - save table")); -+ wprintf_(w, _("\n A - load table\tB - save table")); - if (P_CONVF[0]) -- wprintf(w, _("\tfile:%s"),P_CONVF); -- wprintf(w, _("\n C - edit char\tD - next screen\tE - prev screen\n")); -- wprintf(w, _(" F - convert capture: %s\n"), _(P_CONVCAP)); -+ wprintf_(w, _("\tfile:%s"),P_CONVF); -+ wprintf_(w, _("\n C - edit char\tD - next screen\tE - prev screen\n")); -+ wprintf_(w, _(" F - convert capture: %s\n"), _(P_CONVCAP)); - - wredraw(w, 1); - redraw = 0; -@@ -1725,7 +1725,7 @@ - case 'A': - strcpy(buf,P_CONVF); - prompt=_("Load file: %s"); -- wprintf(w, prompt, buf); -+ wprintf_(w, prompt, buf); - pgets(w, mbslen(prompt) - 1, ymax - 1, P_CONVF, 64, 64); - if (loadconv(P_CONVF) == 0) { - if (strcmp(P_CONVF,buf)) -@@ -1737,7 +1737,7 @@ - case 'B': - strcpy(buf,P_CONVF); - prompt=_("Save as file: %s"); -- wprintf(w, prompt, buf); -+ wprintf_(w, prompt, buf); - pgets(w, mbslen(prompt) - 1, ymax - 1, P_CONVF, 64, 64); - if (saveconv(P_CONVF) == 0) { - if (strcmp(P_CONVF,buf)) -@@ -1748,7 +1748,7 @@ - break; - case 'C': - prompt = _("Character to be edited: "); -- wprintf(w, prompt); -+ wprintf_(w, prompt); - buf[0] = 0; - i = -1; - wlocate(w, mbslen(prompt), ymax - 1); -@@ -1762,7 +1762,7 @@ - sprintf(buf, "%u",(unsigned int) vt_inmap[i]); - wlocate(w, 30, ymax - 1); - prompt=_("Change input to: %s"); -- wprintf(w, prompt,buf); -+ wprintf_(w, prompt,buf); - wlocate(w, mbslen(prompt) + 28, ymax - 1); - wgets(w, buf, 4, 4); - sscanf(buf, "%d", &j); -@@ -1774,7 +1774,7 @@ - sprintf(buf, "%u",(unsigned int) vt_outmap[i]); - wlocate(w, 54, ymax - 1); - prompt = _("Change output to: %s"); -- wprintf(w, prompt, buf); -+ wprintf_(w, prompt, buf); - wlocate(w, mbslen(prompt) + 52, ymax - 1); - wgets(w, buf, 4, 4); - sscanf(buf, "%d", &j); -diff -ru minicom-2.2/src/dial.c minicom-2.2+iPhone/src/dial.c ---- minicom-2.2/src/dial.c 2005-10-31 12:13:51.000000000 +0000 -+++ minicom-2.2+iPhone/src/dial.c 2008-01-02 00:20:52.000000000 +0000 -@@ -353,14 +353,14 @@ - int ret = 0; - - wlocate(dialwin, 1, 5); -- wprintf(dialwin, _(" No connection: %s. \n"), s); -+ wprintf_(dialwin, _(" No connection: %s. \n"), s); - if (rtime < 0) { -- wprintf(dialwin, _(" Press any key to continue.. ")); -+ wprintf_(dialwin, _(" Press any key to continue.. ")); - if (check_io(-1, 0, 10000, NULL, NULL) & 2) - keyboard(KGETKEY, 0); - return 0; - } -- wprintf(dialwin, _(" Retry in %2d seconds "), rtime); -+ wprintf_(dialwin, _(" Retry in %2d seconds "), rtime); - - for (f = rtime - 1; f >= 0; f--) { - x = check_io(-1, 0, 1000, NULL, NULL); -@@ -372,7 +372,7 @@ - break; - } - wlocate(dialwin, 0, 6); -- wprintf(dialwin, _(" Retry in %2d seconds "), f); -+ wprintf_(dialwin, _(" Retry in %2d seconds "), f); - } - #ifdef HAVE_USLEEP - /* MARK updated 02/17/94 - Min dial delay set to 0.35 sec instead of 1 sec */ -@@ -383,8 +383,8 @@ - sleep(1); - #endif - wlocate(dialwin, 1, 5); -- wprintf(dialwin, " \n"); -- wprintf(dialwin, " "); -+ wprintf_(dialwin, " \n"); -+ wprintf_(dialwin, " "); - return ret; - } - -@@ -417,12 +417,12 @@ - wcursor(dialwin, CNONE); - - wputs(dialwin, "\n"); -- wprintf(dialwin, " %s : %s\n", _("Dialing"), d->name); -- wprintf(dialwin, _(" At : %s"), d->number); -- wprintf(dialwin, "\n"); /* help translators */ -+ wprintf_(dialwin, " %s : %s\n", _("Dialing"), d->name); -+ wprintf_(dialwin, _(" At : %s"), d->number); -+ wprintf_(dialwin, "\n"); /* help translators */ - if (d->lastdate[0] && d->lasttime[0]) /* jl 26.01.98 */ -- wprintf(dialwin, _(" Last on : %s at %s"), d->lastdate, d->lasttime); -- wprintf(dialwin, "\n"); -+ wprintf_(dialwin, _(" Last on : %s at %s"), d->lastdate, d->lasttime); -+ wprintf_(dialwin, "\n"); - wredraw(dialwin, 1); - - /* Tell keyboard routines we need them. */ -@@ -447,14 +447,14 @@ - d = dialents; - } while (!(d->flags & FL_TAG)); - wlocate(dialwin, 0, 1); -- wprintf(dialwin, " %s : %s", _("Dialing"), d->name); -+ wprintf_(dialwin, " %s : %s", _("Dialing"), d->name); - wclreol(dialwin); -- wprintf(dialwin, "\n"); /* helps translators */ -- wprintf(dialwin, _(" At : %s"), d->number); -+ wprintf_(dialwin, "\n"); /* helps translators */ -+ wprintf_(dialwin, _(" At : %s"), d->number); - wclreol(dialwin); - if (d->lastdate[0] && d->lasttime[0]) { -- wprintf(dialwin, "\n"); /* don't merge with next printf, helps translators */ -- wprintf(dialwin, _(" Last on : %s at %s"), -+ wprintf_(dialwin, "\n"); /* don't merge with next printf, helps translators */ -+ wprintf_(dialwin, _(" Last on : %s at %s"), - d->lastdate, d->lasttime); - wclreol(dialwin); - } -@@ -469,9 +469,9 @@ - - /* Show used time */ - wlocate(dialwin, 0, 4); -- wprintf(dialwin, _(" Time : %-3d"), dialtime); -+ wprintf_(dialwin, _(" Time : %-3d"), dialtime); - if (maxretries > 1) -- wprintf(dialwin, _(" Attempt #%d"), retries); -+ wprintf_(dialwin, _(" Attempt #%d"), retries); - wputs(dialwin, _("\n\n\n Escape to cancel, space to retry.")); - - /* Start the dial */ -@@ -591,7 +591,7 @@ - keyboard(KSTOP, 0); - wclose(dialwin, 1); - /* Print out the connect strings. */ -- wprintf(us, "\r\n%s\r\n", modbuf); -+ wprintf_(us, "\r\n%s\r\n", modbuf); - dialwin = NULL; - - /* Un-tag this entry. */ -@@ -646,7 +646,7 @@ - if (dialtime < 0) - dialtime = 0; - wlocate(dialwin, 11, 4); -- wprintf(dialwin, "%-3d ", dialtime); -+ wprintf_(dialwin, "%-3d ", dialtime); - if (dialtime <= 0) { - mputs(P_MDIALCAN, 0); - reason = _("Timeout"); -@@ -1073,23 +1073,23 @@ - *question = _("Change which setting?"); - - w = wopen(5, 4, 75, 19, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1); -- wprintf(w, "%s %s\n", name, d->name); -- wprintf(w, "%s %s\n", number, d->number); -- wprintf(w, "%s %d\n", dial_string, d->dialtype + 1); -- wprintf(w, "%s %s\n", local_echo, _(yesno(d->flags & FL_ECHO))); -- wprintf(w, "%s %s\n", script, d->script); -- wprintf(w, "%s %s\n", username, d->username); -- wprintf(w, "%s %s\n", password, d->password); -- wprintf(w, "%s %s\n", terminal_emulation, te[d->term - 1]); -- wprintf(w, "%s %s\n", backspace_key_sends, -+ wprintf_(w, "%s %s\n", name, d->name); -+ wprintf_(w, "%s %s\n", number, d->number); -+ wprintf_(w, "%s %d\n", dial_string, d->dialtype + 1); -+ wprintf_(w, "%s %s\n", local_echo, _(yesno(d->flags & FL_ECHO))); -+ wprintf_(w, "%s %s\n", script, d->script); -+ wprintf_(w, "%s %s\n", username, d->username); -+ wprintf_(w, "%s %s\n", password, d->password); -+ wprintf_(w, "%s %s\n", terminal_emulation, te[d->term - 1]); -+ wprintf_(w, "%s %s\n", backspace_key_sends, - d->flags & FL_DEL ? _("Delete") : _("Backspace")); -- wprintf(w, "%s %s\n", linewrap, -+ wprintf_(w, "%s %s\n", linewrap, - d->flags & FL_WRAP ? _("On") : _("Off")); -- wprintf(w, "%s %s %s%s%s\n", line_settings, -+ wprintf_(w, "%s %s %s%s%s\n", line_settings, - d->baud, d->bits, d->parity, d->stopb); -- wprintf(w, "%s %s\n", conversion_table, d->convfile); -- wprintf(w, _(" Last dialed : %s %s\n"),d->lastdate,d->lasttime); -- wprintf(w, _(" Times on : %d"),d->count); -+ wprintf_(w, "%s %s\n", conversion_table, d->convfile); -+ wprintf_(w, _(" Last dialed : %s %s\n"),d->lastdate,d->lasttime); -+ wprintf_(w, _(" Times on : %d"),d->count); - wlocate(w, 4, 15); - wputs(w, question); - wredraw(w, 1); -@@ -1116,13 +1116,13 @@ - case 'C': - d->dialtype = (d->dialtype + 1) % 3; - wlocate(w, mbslen (dial_string) + 1, 2); -- wprintf(w, "%d", d->dialtype + 1); -+ wprintf_(w, "%d", d->dialtype + 1); - wflush(); - break; - case 'D': - d->flags ^= FL_ECHO; - wlocate(w, mbslen (local_echo) + 1, 3); -- wprintf(w, "%s", _(yesno(d->flags & FL_ECHO))); -+ wprintf_(w, "%s", _(yesno(d->flags & FL_ECHO))); - wflush(); - break; - case 'E': -@@ -1171,7 +1171,7 @@ - case 'K': - get_bbp(d->baud, d->bits, d->parity, d->stopb, 1); - wlocate(w, mbslen (line_settings) + 1, 10); -- wprintf(w, "%s %s%s%s ", -+ wprintf_(w, "%s %s%s%s ", - d->baud, d->bits, d->parity, d->stopb); - break; - case 'L': /* jl 21.09.97 */ -@@ -1207,9 +1207,9 @@ - { - static const char spaces[] = " "; - -- wprintf(dsub, "%.*s", what_padding[k][0], spaces); -- wprintf(dsub, "%.*s", what_lens[k], _(what[k])); -- wprintf(dsub, "%.*s", what_padding[k][1], spaces); -+ wprintf_(dsub, "%.*s", what_padding[k][0], spaces); -+ wprintf_(dsub, "%.*s", what_lens[k], _(what[k])); -+ wprintf_(dsub, "%.*s", what_padding[k][1], spaces); - } - - /* -@@ -1256,7 +1256,7 @@ - d = getno(f + top); - if (d == (struct dialent *)0) - break; -- wprintf(dialw, fmt, f+1+top, (d->flags & FL_TAG) ? '>' : ' ', -+ wprintf_(dialw, fmt, f+1+top, (d->flags & FL_TAG) ? '>' : ' ', - d->name, d->number, d->lastdate, d->lasttime, - d->count, d->script); - } -@@ -1508,7 +1508,7 @@ - - prdir(w, top, top); - wlocate(w, position_dialing_directory, w->ys - 1); -- wprintf(w, "%*.*s", tagmvlen,tagmvlen, tag_exit); -+ wprintf_(w, "%*.*s", tagmvlen,tagmvlen, tag_exit); - dhili(position_dialing_directory, subm); - dirflush = 1; - wredraw(dsub, 1); -@@ -1554,7 +1554,7 @@ - wlocate(w, 4, cur + 1 - top); - d->flags ^= FL_TAG; - wsetattr(w, XA_REVERSE | stdattr); -- wprintf(w, "%c", d->flags & FL_TAG ? '>' : ' '); -+ wprintf_(w, "%c", d->flags & FL_TAG ? '>' : ' '); - wsetattr(w, XA_NORMAL | stdattr); - cur += (cur < nrents - 1); - break; -@@ -1713,7 +1713,7 @@ - dedit(d); - changed++; - wlocate(w, 0, cur + 1 - top); -- wprintf(w, fmt, cur+1, (d->flags & FL_TAG) ? 16 : ' ', d->name, -+ wprintf_(w, fmt, cur+1, (d->flags & FL_TAG) ? 16 : ' ', d->name, - d->number, d->lastdate, d->lasttime, d->count, d->script); - } - -@@ -1751,13 +1751,13 @@ - /* Move the entry up/down in directory. */ - if (subm == 5) { - wlocate(w, position_dialing_directory, w->ys - 1); -- wprintf(w, "%*.*s", tagmvlen,tagmvlen, move_exit); -+ wprintf_(w, "%*.*s", tagmvlen,tagmvlen, move_exit); - cur = move_entry (w, d, cur, &top); - if (cur != ocur) - changed++; - ocur = cur; - wlocate(w, position_dialing_directory, w->ys - 1); -- wprintf(w, "%*.*s", tagmvlen,tagmvlen, tag_exit); -+ wprintf_(w, "%*.*s", tagmvlen,tagmvlen, tag_exit); - } - - /* Dial a number manually. */ -diff -ru minicom-2.2/src/file.c minicom-2.2+iPhone/src/file.c ---- minicom-2.2/src/file.c 2005-08-14 20:39:30.000000000 +0000 -+++ minicom-2.2+iPhone/src/file.c 2008-01-02 00:20:52.000000000 +0000 -@@ -89,11 +89,11 @@ - { - static const char spaces[] = " "; - -- wprintf(dsub, "%.*s", what_padding[k][0], spaces); -+ wprintf_(dsub, "%.*s", what_padding[k][0], spaces); - wsetattr(dsub, start_attr); -- wprintf(dsub, "%.*s", what_lens[k], _(what[k])); -+ wprintf_(dsub, "%.*s", what_lens[k], _(what[k])); - wsetattr(dsub, end_attr); -- wprintf(dsub, "%.*s", what_padding[k][1], spaces); -+ wprintf_(dsub, "%.*s", what_padding[k][1], spaces); - } - - /* -@@ -163,9 +163,9 @@ - wsetattr(dirw, XA_REVERSE | stdattr); - if (S_ISDIR(d->mode)) { - snprintf(t_str, sizeof(t_str), "[%s]", d->fname); -- wprintf(dirw, f_str, t_str); -+ wprintf_(dirw, f_str, t_str); - } else -- wprintf(dirw, f_str, d->fname); -+ wprintf_(dirw, f_str, d->fname); - wsetattr(dirw, XA_NORMAL | stdattr); - wputc(dirw, '\n'); - } -@@ -191,9 +191,9 @@ - wsetattr(dirw, XA_REVERSE | stdattr); - if (S_ISDIR(dirdat->mode)) { - snprintf(t_str, sizeof(t_str), "[%s]", dirdat->fname); -- wprintf(dirw, f_str, t_str); -+ wprintf_(dirw, f_str, t_str); - } else -- wprintf(dirw, f_str, dirdat->fname); -+ wprintf_(dirw, f_str, dirdat->fname); - wsetattr(dirw, XA_NORMAL | stdattr); - dirflush = 1; - wflush(); -diff -ru minicom-2.2/src/help.c minicom-2.2+iPhone/src/help.c ---- minicom-2.2/src/help.c 2005-10-31 10:31:38.000000000 +0000 -+++ minicom-2.2+iPhone/src/help.c 2008-01-02 00:20:52.000000000 +0000 -@@ -38,7 +38,7 @@ - wputs(w, _("Minicom Command Summary")); - wlocate(w, 10, 2); - -- wprintf(w, _("Commands can be called by %s<key>"), esc_key()); -+ wprintf_(w, _("Commands can be called by %s<key>"), esc_key()); - - wlocate(w, 15, 4); - wputs(w, _("Main Functions")); -diff -ru minicom-2.2/src/main.c minicom-2.2+iPhone/src/main.c ---- minicom-2.2/src/main.c 2005-10-31 12:13:51.000000000 +0000 -+++ minicom-2.2+iPhone/src/main.c 2008-01-02 00:20:52.000000000 +0000 -@@ -452,12 +452,12 @@ - if (st) { /* if swich off status line - NOT print !!! (vlk@st.simbirsk.su) */ - wlocate(st, 20, 0); - if (portfd_is_socket) { -- wprintf(st, "unix-socket"); -+ wprintf_(st, "unix-socket"); - } else { - if (P_SHOWSPD[0] == 'l') -- wprintf(st, "%6ld %s%s%s", linespd, P_BITS, P_PARITY, P_STOPB); -+ wprintf_(st, "%6ld %s%s%s", linespd, P_BITS, P_PARITY, P_STOPB); - else -- wprintf(st, "%6.6s %s%s%s", P_BAUDRATE, P_BITS, P_PARITY, P_STOPB); -+ wprintf_(st, "%6.6s %s%s%s", P_BAUDRATE, P_BITS, P_PARITY, P_STOPB); - } - ret_csr(); - } -@@ -474,9 +474,9 @@ - return; - wlocate(st, 63, 0); - if (online < 0) -- wprintf(st, " %12.12s ", P_HASDCD[0] == 'Y' ? _("Offline") : _("OFFLINE")); -+ wprintf_(st, " %12.12s ", P_HASDCD[0] == 'Y' ? _("Offline") : _("OFFLINE")); - else -- wprintf(st, " %s %02ld:%02ld", P_HASDCD[0] == 'Y' ? _("Online") : _("ONLINE"), -+ wprintf_(st, " %s %02ld:%02ld", P_HASDCD[0] == 'Y' ? _("Online") : _("ONLINE"), - online / 3600, (online / 60) % 60); - - ret_csr(); -@@ -488,7 +488,7 @@ - void curs_status(void) - { - wlocate(st, 33, 0); -- wprintf(st, cursormode == NORMAL ? "NOR" : "APP"); -+ wprintf_(st, cursormode == NORMAL ? "NOR" : "APP"); - ret_csr(); - } - -@@ -570,7 +570,7 @@ - { - st->direct = 0; - wlocate(st, 0, 0); -- wprintf(st, -+ wprintf_(st, - _(" %7.7sZ for help | | | Minicom %-6.6s | | "), - esc_key(), VERSION); - mode_status(); -@@ -598,9 +598,9 @@ - return; - wlocate(st, 39, 0); - if (*s == 0) -- wprintf(st, "Minicom %-6.6s", VERSION); -+ wprintf_(st, "Minicom %-6.6s", VERSION); - else -- wprintf(st, "script %-7.7s", s); -+ wprintf_(st, "script %-7.7s", s); - ret_csr(); - } - -diff -ru minicom-2.2/src/minicom.c minicom-2.2+iPhone/src/minicom.c ---- minicom-2.2/src/minicom.c 2005-10-31 12:13:51.000000000 +0000 -+++ minicom-2.2+iPhone/src/minicom.c 2008-01-02 00:20:52.000000000 +0000 -@@ -261,7 +261,7 @@ - w_new->wrap = 0; - - hline = _("SEARCH FOR (ESC=Exit)"); -- wprintf(w_new, "%s(%d):",hline,MAX_SEARCH); -+ wprintf_(w_new, "%s(%d):",hline,MAX_SEARCH); - wredraw(w_new, 1); - wflush(); - -@@ -461,7 +461,7 @@ - if (b_st->xs < 127) - hline0[b_st->xs] = 0; - hline = hline0; -- wprintf(b_st, hline); -+ wprintf_(b_st, hline); - wredraw(b_st, 1); - wflush(); - -@@ -514,7 +514,7 @@ - searchhist(b_us, look_for); - /* must redraw status line... */ - wlocate(b_st, 0, 0); /* move back to column 0! */ -- wprintf(b_st, hline); /* and show the above-defined hline */ -+ wprintf_(b_st, hline); /* and show the above-defined hline */ - wredraw(b_st, 1); /* again... */ - /* highlight any matches */ - if (wcslen(look_for) > 1) { -@@ -723,7 +723,7 @@ - hline = hline0; - } - wlocate(b_st, 0, 0); -- wprintf(b_st, hline); -+ wprintf_(b_st, hline); - wredraw(b_st, 1); - if (citemode) - wlocate(b_us, 0, cite_y); -@@ -743,7 +743,7 @@ - break; - } - wlocate(b_st, 0, 0); -- wprintf(b_st, hline); -+ wprintf_(b_st, hline); - wredraw(b_st, 1); - wdrawelm_inverse(b_us, cite_y, getline(b_us, cite_ystart)); - wlocate(b_us, 0, cite_y); -@@ -762,7 +762,7 @@ - } - drawcite_whole(b_us, y, cite_ystart, cite_yend); - wlocate(b_st, 0, 0); -- wprintf(b_st, hline); -+ wprintf_(b_st, hline); - wredraw(b_st, 1); - if (citemode) - wlocate(b_us, 0, cite_y); -@@ -1335,6 +1335,6 @@ - if (doinit) - modeminit(); - -- wprintf(us, "\n%s %s\r\n", _("Welcome to minicom"), VERSION); -- wprintf(us, "\n%s: %s\r\n", _("OPTIONS"), option_string); -+ wprintf_(us, "\n%s %s\r\n", _("Welcome to minicom"), VERSION); -+ wprintf_(us, "\n%s: %s\r\n", _("OPTIONS"), option_string); - -@@ -1340,6 +1340,6 @@ - -- wprintf(us, "Port %s\n", P_PORT); -- wprintf(us, _("\nPress %sZ for help on special keys%c\n\n"),esc_key(),'\r'); -+ wprintf_(us, "Port %s\n", P_PORT); -+ wprintf_(us, _("\nPress %sZ for help on special keys%c\n\n"),esc_key(),'\r'); - - /* Now that all initialization is done, drop our priviliges. */ - drop_privs(); -diff -ru minicom-2.2/src/updown.c minicom-2.2+iPhone/src/updown.c ---- minicom-2.2/src/updown.c 2005-08-14 20:39:30.000000000 +0000 -+++ minicom-2.2+iPhone/src/updown.c 2008-01-02 00:20:52.000000000 +0000 -@@ -355,7 +355,7 @@ - if (win && (status & 0xFF00) == 0) { - #if VC_MUSIC - if (P_SOUND[0] == 'Y') { -- wprintf(win, _("\n READY: press any key to continue...")); -+ wprintf_(win, _("\n READY: press any key to continue...")); - music(); - } else - sleep(1); -@@ -363,7 +363,7 @@ - /* MARK updated 02/17/94 - If there was no VC_MUSIC capability, */ - /* then at least make some beeps! */ - if (P_SOUND[0] == 'Y') -- wprintf(win, "\007\007\007"); -+ wprintf_(win, "\007\007\007"); - sleep(1); - #endif - } -@@ -526,9 +526,9 @@ - w = wopen(10, 5, 70, 10, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1); - wtitle(w, TMID, _("Run a script")); - wputs(w, "\n"); -- wprintf(w, "%s %s\n", username, scr_user[0] ? msg : ""); -- wprintf(w, "%s %s\n", password, scr_passwd[0] ? msg : ""); -- wprintf(w, "%s %s\n", name_of_script, scr_name); -+ wprintf_(w, "%s %s\n", username, scr_user[0] ? msg : ""); -+ wprintf_(w, "%s %s\n", password, scr_passwd[0] ? msg : ""); -+ wprintf_(w, "%s %s\n", name_of_script, scr_name); - wlocate(w, 4, 5); - wputs(w, question); - wredraw(w, 1); -diff -ru minicom-2.2/src/windiv.c minicom-2.2+iPhone/src/windiv.c ---- minicom-2.2/src/windiv.c 2006-10-11 20:46:21.000000000 +0000 -+++ minicom-2.2+iPhone/src/windiv.c 2008-01-02 00:20:52.000000000 +0000 -@@ -120,7 +120,7 @@ - while (1) { - wlocate(w, 2 + offs + 10 * cur, 1); - if (!useattr) -- wprintf(w, ">%s", _(s[cur]) + 1); -+ wprintf_(w, ">%s", _(s[cur]) + 1); - else { - wsetattr(w, XA_REVERSE | stdattr); - wputs(w, _(s[cur])); -@@ -169,7 +169,7 @@ - BDOUBLE, stdattr, mfcolor, mbcolor, 1, 0, 1); - wputs(w, s); - wlocate(w, 0, 1); -- wprintf(w, "> %-38.38s", buf); -+ wprintf_(w, "> %-38.38s", buf); - wlocate(w, 2, 1); - if (wgets(w, buf, 38, 128) < 0) - buf = NULL; -diff -ru minicom-2.2/src/window.c minicom-2.2+iPhone/src/window.c ---- minicom-2.2/src/window.c 2005-11-06 19:20:57.000000000 +0000 -+++ minicom-2.2+iPhone/src/window.c 2008-01-02 00:20:52.000000000 +0000 -@@ -1146,7 +1146,7 @@ - * Print a formatted string in a window. - * Should return stringlength - but who cares. - */ --int wprintf(WIN *win, const char *fmt, ...) -+int wprintf_(WIN *win, const char *fmt, ...) - { - char buf[160]; - va_list va; -@@ -1304,7 +1304,7 @@ - wtitle(w, TMID, title); - - for (c = 0; c < count; c++) -- wprintf(w, " %s%s", _(choices[c]), c == count - 1 ? "" : "\n"); -+ wprintf_(w, " %s%s", _(choices[c]), c == count - 1 ? "" : "\n"); - - wcurbar(w, cur, high_on); - wredraw(w, 1); -diff -ru minicom-2.2/src/window.h minicom-2.2+iPhone/src/window.h ---- minicom-2.2/src/window.h 2006-04-02 09:58:52.000000000 +0000 -+++ minicom-2.2+iPhone/src/window.h 2008-01-02 00:20:50.000000000 +0000 -@@ -151,7 +151,7 @@ - void wputc(WIN *win, wchar_t c); - void wdrawelm(WIN *win, int y, ELM *e); - void wputs(WIN *win, const char *s); --int wprintf(WIN *, const char *, ...) -+int wprintf_(WIN *, const char *, ...) - __attribute__((format(printf, 2, 3))); - void wbell(void); - void wcursor(WIN *win, int type); diff --git a/data/ncftp/_metadata/version b/data/ncftp/_metadata/version index b347b11ea..34cde5690 100644 --- a/data/ncftp/_metadata/version +++ b/data/ncftp/_metadata/version @@ -1 +1 @@ -3.2.3 +3.2.6 diff --git a/data/ncftp/extern.diff b/data/ncftp/extern.diff new file mode 100644 index 000000000..6aecc460d --- /dev/null +++ b/data/ncftp/extern.diff @@ -0,0 +1,12 @@ +diff -ur ncftp-3.2.6/sh_util/gpshare.c ncftp-3.2.6+iPhone/sh_util/gpshare.c +--- ncftp-3.2.6/sh_util/gpshare.c 2016-11-12 13:53:39.000000000 -1000 ++++ ncftp-3.2.6+iPhone/sh_util/gpshare.c 2018-08-17 12:09:15.000000000 -1000 +@@ -28,7 +28,7 @@ + + static int gIsAtty1 = 1, gIsAtty2 = 1; + extern int gLoadedBm, gBookmarkMatchMode; +-Bookmark gBm; ++extern Bookmark gBm; + + double + FileSize(double size, const char **uStr0, double *uMult0) diff --git a/data/ncftp/getdomainname.diff b/data/ncftp/getdomainname.diff new file mode 100644 index 000000000..42542d638 --- /dev/null +++ b/data/ncftp/getdomainname.diff @@ -0,0 +1,12 @@ +diff -ur ncftp-3.2.6/sio/DNSUtil.c ncftp-3.2.6+iPhone/sio/DNSUtil.c +--- ncftp-3.2.6/sio/DNSUtil.c 2016-11-12 17:03:45.000000000 -1000 ++++ ncftp-3.2.6+iPhone/sio/DNSUtil.c 2018-08-17 12:05:05.000000000 -1000 +@@ -12,7 +12,7 @@ + # define Strncpy(a,b,s) strncpy(a, b, s); a[s - 1] = '\0' + #endif + +-#if (((defined(MACOSX)) && (MACOSX < 10300)) || (defined(AIX) && (AIX < 430)) || (defined(DIGITAL_UNIX)) || (defined(SOLARIS)) || (defined(SCO)) || (defined(HPUX))) ++#if (((defined(MACOSX)) && (MACOSX < 10300) && (!defined(__arm__)) && (!defined(__arm64__))) || (defined(AIX) && (AIX < 430)) || (defined(DIGITAL_UNIX)) || (defined(SOLARIS)) || (defined(SCO)) || (defined(HPUX))) + extern int getdomainname(char *name, gethostname_size_t namelen); + #endif + diff --git a/data/ncftp/make.sh b/data/ncftp/make.sh index de71b27aa..521bb3049 100644 --- a/data/ncftp/make.sh +++ b/data/ncftp/make.sh @@ -1,5 +1,5 @@ pkg:setup -RANLIB=$(which "${PKG_TARG}-ranlib") CC=$(which "${PKG_TARG}-gcc") pkg:configure -make +CFLAGS="-O2 -fno-common" CXXFLAGS="-O2 -fno-common" RANLIB=$(which "${PKG_TARG}-ranlib") CC=$(which "${PKG_TARG}-gcc") ./configure --build="$(${PKG_BASE}/util/config.guess)" --host="${PKG_TARG}" --enable-static=no --enable-shared=yes --prefix="$(cat "${PKG_BASE}/arch/${PKG_ARCH}/prefix")" --localstatedir="/var/cache/${PKG_NAME}" +make -j8 mkdir -p "${PKG_DEST}/usr/share" pkg:install diff --git a/data/ncftp/mdns.diff b/data/ncftp/mdns.diff deleted file mode 100644 index 696ab5480..000000000 --- a/data/ncftp/mdns.diff +++ /dev/null @@ -1,25 +0,0 @@ -diff -ru ncftp-3.2.1/ncftp/main.c ncftp-3.2.1+iPhone/ncftp/main.c ---- ncftp-3.2.1/ncftp/main.c 2006-08-05 21:30:44.000000000 +0000 -+++ ncftp-3.2.1+iPhone/ncftp/main.c 2008-03-04 19:56:17.000000000 +0000 -@@ -1,3 +1,5 @@ -+#include <mach-o/nlist.h> -+ - /* main.c - * - * Copyright (c) 1992-2005 by Mike Gleason. -@@ -401,6 +403,15 @@ - main_void_return_t - main(int argc, char **const argv) - { -+#if !defined(__ENVIRONMENT_ASPEN_VERSION_MIN_REQUIRED__) || __ENVIRONMENT_ASPEN_VERSION_MIN_REQUIRED__ < 10200 -+ struct nlist nl[2]; -+ memset(nl, 0, sizeof(nl)); -+ nl[0].n_un.n_name = (char *) "_useMDNSResponder"; -+ nlist("/usr/lib/libc.dylib", nl); -+ if (nl[0].n_type != N_UNDF) -+ *(int *) nl[0].n_value = 0; -+#endif -+ - int c; - int n; - GetoptInfo opt; diff --git a/data/ncftp/ncftp-3.2.1-src.tar.gz b/data/ncftp/ncftp-3.2.1-src.tar.gz Binary files differdeleted file mode 100644 index c92b29a92..000000000 --- a/data/ncftp/ncftp-3.2.1-src.tar.gz +++ /dev/null diff --git a/data/ncftp/ncftp-3.2.3-src.tar.bz2 b/data/ncftp/ncftp-3.2.3-src.tar.bz2 Binary files differdeleted file mode 100644 index d5d84cc94..000000000 --- a/data/ncftp/ncftp-3.2.3-src.tar.bz2 +++ /dev/null diff --git a/data/ncftp/ncftp-3.2.6-src.tar.xz b/data/ncftp/ncftp-3.2.6-src.tar.xz Binary files differnew file mode 100644 index 000000000..0c680f12a --- /dev/null +++ b/data/ncftp/ncftp-3.2.6-src.tar.xz diff --git a/data/ncurses/make.sh b/data/ncurses/make.sh index 177e2c812..c96ec2565 100644 --- a/data/ncurses/make.sh +++ b/data/ncurses/make.sh @@ -4,7 +4,7 @@ cd .. dir=$(echo *) mkdir bld-ncurses{,w} cd bld-ncurses -flags='--with-shared --without-normal --without-debug --enable-sigwinch --disable-mixed-case --enable-termcap' +flags="--with-shared --without-normal --without-debug --enable-sigwinch --disable-mixed-case --enable-termcap --enable-pc-files --with-pkg-config-libdir=${PKG_TAPF}/lib/pkgconfig" PKG_CONF=../${dir}/configure PKG_MCPU=-marm pkg:configure ${flags} make -j8 pkg:install diff --git a/data/neon/make.sh b/data/neon/make.sh index 1e712d5af..9bf19df48 100644 --- a/data/neon/make.sh +++ b/data/neon/make.sh @@ -2,5 +2,5 @@ pkg:setup autoconf pkg:configure --with-ssl #--with-expat="${PKG_ROOT}/usr/lib/libexpat.la" -make +make -j8 pkg:install diff --git a/data/neon/neon-0.26.4.tar.gz b/data/neon/neon-0.26.4.tar.gz Binary files differdeleted file mode 100644 index ca34b96a1..000000000 --- a/data/neon/neon-0.26.4.tar.gz +++ /dev/null diff --git a/data/neon/neon-0.30.2.tar.gz b/data/neon/neon-0.30.2.tar.gz Binary files differnew file mode 100644 index 000000000..ea6307423 --- /dev/null +++ b/data/neon/neon-0.30.2.tar.gz diff --git a/data/neon/nmedit.diff b/data/neon/nmedit.diff deleted file mode 100644 index 599393ba5..000000000 --- a/data/neon/nmedit.diff +++ /dev/null @@ -1,51 +0,0 @@ -diff -ru neon-0.26.4/aclocal.m4 neon-0.26.4+iPhone/aclocal.m4 ---- neon-0.26.4/aclocal.m4 2007-07-14 20:45:34.000000000 +0000 -+++ neon-0.26.4+iPhone/aclocal.m4 2007-12-28 12:48:28.000000000 +0000 -@@ -3087,11 +3087,11 @@ - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~${PKG_TARG}-nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~${PKG_TARG}-nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi -- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~${PKG_TARG}-nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case $cc_basename in - xlc*) -@@ -3099,8 +3099,8 @@ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~${PKG_TARG}-nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~${PKG_TARG}-nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no -@@ -5855,8 +5855,8 @@ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~${PKG_TARG}-nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~${PKG_TARG}-nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - case $cc_basename in - xlc*) -@@ -5864,8 +5864,8 @@ - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds -- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~${PKG_TARG}-nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' -+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~${PKG_TARG}-nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - ;; - *) - _LT_AC_TAGVAR(ld_shlibs, $1)=no diff --git a/data/netcat/make.sh b/data/netcat/make.sh index 00bf96237..fe4770710 100644 --- a/data/netcat/make.sh +++ b/data/netcat/make.sh @@ -1,5 +1,6 @@ pkg:setup +autoreconf -f -i pkg:configure -make +make -j8 pkg:install pkg:bin diff --git a/data/netcat/mdns.diff b/data/netcat/mdns.diff deleted file mode 100644 index 89cc0e2ed..000000000 --- a/data/netcat/mdns.diff +++ /dev/null @@ -1,25 +0,0 @@ -diff -ru netcat-0.7.1/src/netcat.c netcat-0.7.1+iPhone/src/netcat.c ---- netcat-0.7.1/src/netcat.c 2003-08-28 17:20:25.000000000 +0000 -+++ netcat-0.7.1+iPhone/src/netcat.c 2008-04-10 10:02:32.000000000 +0000 -@@ -1,3 +1,5 @@ -+#include <mach-o/nlist.h> -+ - /* - * netcat.c -- main project file - * Part of the GNU netcat project -@@ -137,6 +139,15 @@ - - int main(int argc, char *argv[]) - { -+#if !defined(__ENVIRONMENT_ASPEN_VERSION_MIN_REQUIRED__) || __ENVIRONMENT_ASPEN_VERSION_MIN_REQUIRED__ < 10200 -+ struct nlist nl[2]; -+ memset(nl, 0, sizeof(nl)); -+ nl[0].n_un.n_name = (char *) "_useMDNSResponder"; -+ nlist("/usr/lib/libc.dylib", nl); -+ if (nl[0].n_type != N_UNDF) -+ *(int *) nl[0].n_value = 0; -+#endif -+ - int c, glob_ret = EXIT_FAILURE; - int total_ports, left_ports, accept_ret = -1, connect_ret = -1; - struct sigaction sv; diff --git a/data/network-cmds/_metadata/_network-cmds.dep b/data/network-cmds/_metadata/_network-cmds.dep new file mode 120000 index 000000000..79d453e3b --- /dev/null +++ b/data/network-cmds/_metadata/_network-cmds.dep @@ -0,0 +1 @@ +../../_network-cmds
\ No newline at end of file diff --git a/data/odcctools/_metadata/_ld64.dep b/data/odcctools/_metadata/_ld64.dep new file mode 120000 index 000000000..030d8a67e --- /dev/null +++ b/data/odcctools/_metadata/_ld64.dep @@ -0,0 +1 @@ +../../_ld64
\ No newline at end of file diff --git a/data/odcctools/_metadata/version b/data/odcctools/_metadata/version index c20f65747..208931296 100644 --- a/data/odcctools/_metadata/version +++ b/data/odcctools/_metadata/version @@ -1 +1 @@ -286 +895 diff --git a/data/odcctools/cctools-895.tar.gz b/data/odcctools/cctools-895.tar.gz Binary files differnew file mode 100644 index 000000000..8f6e66a82 --- /dev/null +++ b/data/odcctools/cctools-895.tar.gz diff --git a/data/odcctools/fixes.diff b/data/odcctools/fixes.diff new file mode 100644 index 000000000..82a861957 --- /dev/null +++ b/data/odcctools/fixes.diff @@ -0,0 +1,24 @@ +diff -ur cctools-895/libmacho/Makefile cctools-895+iPhone/libmacho/Makefile +--- cctools-895/libmacho/Makefile 2016-12-09 08:02:59.000000000 -1000 ++++ cctools-895+iPhone/libmacho/Makefile 2018-09-05 10:18:21.000000000 -1000 +@@ -16,9 +16,7 @@ + LIBSYSCALL=-lsystem_kernel + endif + +-DEPENDENT_LIBS = -nodefaultlibs -umbrella System -L/usr/lib/system \ +- -ldyld -lsystem_malloc -lsystem_c $(LIBSYSCALL) \ +- -lcompiler_rt ++DEPENDENT_LIBS = -nodefaultlibs -umbrella System -L"${SDKROOT}/usr/lib/system" -lSystem + + ifneq "" "$(SDKROOT)" + SDK = -isysroot $(SDKROOT) +@@ -324,7 +322,7 @@ + install -c -m 555 dtmp_obj/libmacho.dylib \ + $(DSTROOT)$(DYLIBDIR)/libmacho.dylib; \ + $(STRIP) -S $(DSTROOT)$(DYLIBDIR)/libmacho.dylib; \ +- install -c -m 555 dtmp_obj/libmacho_profile.dylib \ ++ install -c -m 555 ptmp_obj/libmacho_profile.dylib \ + $(DSTROOT)$(DYLIBDIR)/libmacho_profile.dylib; \ + $(STRIP) -S $(DSTROOT)$(DYLIBDIR)/libmacho_profile.dylib; \ + install -c -m 555 dtmp_obj/libmacho_debug.dylib \ +Only in cctools-895+iPhone/libmacho: Makefile.orig diff --git a/data/odcctools/make.sh b/data/odcctools/make.sh index 9a1f484dc..18a41caab 100644 --- a/data/odcctools/make.sh +++ b/data/odcctools/make.sh @@ -1,9 +1,8 @@ pkg:setup -rm -f include/libkern/OSByteOrder.h -rm -f include/mach/{task,thread_act,thread_status}.h -rm -f include/mach/machine/{boolean,exception,kern_return,processor_info,rpc,thread_state,thread_status,vm_param,vm_types}.h -pkg:configure --enable-ld64 ac_cv_header_objc_objc_runtime_h=no -make -pkg:install -pkg: mv /usr/bin/ld{,_classic} -pkg: ln -s ld64 /usr/bin/ld +pkg: export RC_ProjectSourceVersion="$(cat ${PKG_DATA}/_metadata/version)" +pkg:make DSTROOT="${PKG_DEST}" SDKROOT="${PKG_ROOT}" +pkg:install DSTROOT="${PKG_DEST}" SDKROOT="${PKG_ROOT}" +pkg: rm -f /usr/lib/system/libmacho.dylib /usr/bin/{nm,otool,size} +pkg: mv -f /usr/bin/nm{-classic,} +pkg: mv -f /usr/bin/otool{-classic,} +pkg: mv -f /usr/bin/size{-classic,} diff --git a/data/odcctools/odcctools-286.tgz b/data/odcctools/odcctools-286.tgz Binary files differdeleted file mode 100644 index e8096aa3d..000000000 --- a/data/odcctools/odcctools-286.tgz +++ /dev/null diff --git a/data/odcctools/otool.diff b/data/odcctools/otool.diff deleted file mode 100644 index 3d5f28543..000000000 --- a/data/odcctools/otool.diff +++ /dev/null @@ -1,76 +0,0 @@ -diff -ru odcctools-277/include/foreign/objc/objc-api.h odcctools-277+iPhone/include/foreign/objc/objc-api.h ---- odcctools-277/include/foreign/objc/objc-api.h 2008-08-29 23:05:06.000000000 +0000 -+++ odcctools-277+iPhone/include/foreign/objc/objc-api.h 2008-08-30 00:26:47.000000000 +0000 -@@ -45,7 +45,7 @@ - /* OBJC2_UNAVAILABLE: unavailable in objc 2.0, deprecated in Leopard */ - #if !defined(OBJC2_UNAVAILABLE) - # if __OBJC2__ --# define OBJC2_UNAVAILABLE UNAVAILABLE_ATTRIBUTE -+# define OBJC2_UNAVAILABLE //UNAVAILABLE_ATTRIBUTE - # else - # define OBJC2_UNAVAILABLE DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER - # endif -diff -ru odcctools-277/include/foreign/objc/runtime.h odcctools-277+iPhone/include/foreign/objc/runtime.h ---- odcctools-277/include/foreign/objc/runtime.h 2008-08-29 23:05:06.000000000 +0000 -+++ odcctools-277+iPhone/include/foreign/objc/runtime.h 2008-08-30 00:25:34.000000000 +0000 -@@ -43,7 +43,7 @@ - struct objc_class { - Class isa; - --#if !__OBJC2__ -+#if 1//!__OBJC2__ - Class super_class OBJC2_UNAVAILABLE; - const char *name OBJC2_UNAVAILABLE; - long version OBJC2_UNAVAILABLE; -@@ -303,7 +303,7 @@ - - /* Obsolete types */ - --#if !__OBJC2__ -+#if 1//!__OBJC2__ - - #define CLS_GETINFO(cls,infomask) ((cls)->info & (infomask)) - #define CLS_SETINFO(cls,infomask) ((cls)->info |= (infomask)) -diff -ru odcctools-277/otool/Makefile.in odcctools-277+iPhone/otool/Makefile.in ---- odcctools-277/otool/Makefile.in 2008-08-29 22:38:32.000000000 +0000 -+++ odcctools-277+iPhone/otool/Makefile.in 2008-08-30 00:18:48.000000000 +0000 -@@ -24,8 +24,10 @@ - INCPRIVEXT = -include $(top_srcdir)/include/extern.h - endif - -+FOREIGN = -I$(top_srcdir)/include/foreign -+ - ifeq ($(HAVE_FOREIGN_HEADERS),YES) --FORHDRS = -I$(top_srcdir)/include/foreign -+FORHDRS = $(FOREIGN) - endif - - INSTALL = @INSTALL@ -@@ -77,9 +79,9 @@ - $(CC) -DOTOOL $(MYCOMPILEFLAGS) -DARCH64 -c -o $@ $< - - $(MOBJS): %.o: %.c -- $(CC) $(OBJC) $(MYCOMPILEFLAGS) -c -o $@ $< -+ $(CC) $(OBJC) $(MYCOMPILEFLAGS) $(FOREIGN) -c -o $@ $< - $(MOBJS64): %.64o: %.c -- $(CC) $(OBJC) $(MYCOMPILEFLAGS) -DARCH64 -c -o $@ $< -+ $(CC) $(OBJC) $(MYCOMPILEFLAGS) $(FOREIGN) -DARCH64 -c -o $@ $< - - install: otool otool64 - mkdir -p $(DESTDIR)$(bindir) -diff -ru odcctools-277/otool/print_objc.c odcctools-277+iPhone/otool/print_objc.c ---- odcctools-277/otool/print_objc.c 2008-08-29 22:38:32.000000000 +0000 -+++ odcctools-277+iPhone/otool/print_objc.c 2008-08-30 00:18:48.000000000 +0000 -@@ -39,7 +39,11 @@ - - struct objc_protocol - { -- @defs(Protocol) -+ Class isa; -+ char *protocol_name OBJC2_UNAVAILABLE; -+ struct objc_protocol_list *protocol_list OBJC2_UNAVAILABLE; -+ struct objc_method_description_list *instance_methods OBJC2_UNAVAILABLE; -+ struct objc_method_description_list *class_methods OBJC2_UNAVAILABLE; - }; - - /* diff --git a/data/odcctools/usrbin.diff b/data/odcctools/usrbin.diff deleted file mode 100644 index e5629d873..000000000 --- a/data/odcctools/usrbin.diff +++ /dev/null @@ -1,32 +0,0 @@ -diff -ru odcctools-286/as/driver.c odcctools-286+iPhone/as/driver.c ---- odcctools-286/as/driver.c 2008-07-24 19:20:04.000000000 +0000 -+++ odcctools-286+iPhone/as/driver.c 2009-06-30 03:46:53.000000000 +0000 -@@ -31,16 +31,16 @@ - const char *LIB = - #if defined(__OPENSTEP__) || defined(__HERA__) || \ - defined(__GONZO_BUNSEN_BEAKER__) || defined(__KODIAK__) -- "../libexec/"; -+ "libexec/"; - #else -- "../libexec/gcc/darwin/"; -+ "libexec/gcc/darwin/"; - #endif - const char *LOCALLIB = - #if defined(__OPENSTEP__) || defined(__HERA__) || \ - defined(__GONZO_BUNSEN_BEAKER__) || defined(__KODIAK__) -- "../local/libexec/"; -+ "local/libexec/"; - #else -- "../local/libexec/gcc/darwin/"; -+ "local/libexec/gcc/darwin/"; - #endif - const char *AS = "/as"; - -@@ -73,6 +73,7 @@ - p = rindex(prefix, '/'); - if(p != NULL) - p[1] = '\0'; -+ prefix = "/usr/"; - /* - * Process the assembler flags exactly like the assembler would (except - * let the assembler complain about multiple flags, bad combinations of diff --git a/data/odcctools/x86.diff b/data/odcctools/x86.diff deleted file mode 100644 index 1f383f646..000000000 --- a/data/odcctools/x86.diff +++ /dev/null @@ -1,65 +0,0 @@ -diff -ru odcctools-253/libstuff/bytesex.c odcctools-253+iPhone/libstuff/bytesex.c ---- odcctools-253/libstuff/bytesex.c 2008-07-21 18:58:48.000000000 +0000 -+++ odcctools-253+iPhone/libstuff/bytesex.c 2008-07-21 19:15:06.000000000 +0000 -@@ -1408,7 +1408,7 @@ - #endif /* x86_THREAD_STATE64 */ - - /* current i386 thread states */ --#if i386_THREAD_STATE == 1 -+#if i386_THREAD_STATE == 1 && 0 - __private_extern__ - void - swap_i386_float_state( -diff -ru odcctools-253/libstuff/swap_headers.c odcctools-253+iPhone/libstuff/swap_headers.c ---- odcctools-253/libstuff/swap_headers.c 2008-07-21 18:58:48.000000000 +0000 -+++ odcctools-253+iPhone/libstuff/swap_headers.c 2008-07-21 19:07:38.000000000 +0000 -@@ -635,13 +635,13 @@ - || cputype == CPU_TYPE_X86_64 - #endif /* x86_THREAD_STATE64 */ - ){ -- i386_thread_state_t *cpu; -+ x86_thread_state_t *cpu; - #ifdef x86_THREAD_STATE64 - x86_thread_state64_t *cpu64; - #endif /* x86_THREAD_STATE64 */ - /* current i386 thread states */ - #if i386_THREAD_STATE == 1 -- struct i386_float_state *fpu; -+ struct x86_float_state *fpu; - i386_exception_state_t *exc; - #endif /* i386_THREAD_STATE == 1 */ - -@@ -679,8 +679,8 @@ - "LC_THREAD", i); - return(FALSE); - } -- cpu = (i386_thread_state_t *)state; -- state += sizeof(i386_thread_state_t); -+ cpu = (x86_thread_state_t *)state; -+ state += sizeof(x86_thread_state_t); - break; - /* current i386 thread states */ - #if i386_THREAD_STATE == 1 -@@ -695,8 +695,8 @@ - "LC_THREAD", i); - return(FALSE); - } -- fpu = (struct i386_float_state *)state; -- state += sizeof(struct i386_float_state); -+ fpu = (struct x86_float_state *)state; -+ state += sizeof(struct x86_float_state); - break; - case i386_EXCEPTION_STATE: - if(count != I386_EXCEPTION_STATE_COUNT){ -@@ -1350,9 +1350,9 @@ - /* current i386 thread states */ - #if i386_THREAD_STATE == 1 - case i386_FLOAT_STATE: -- fpu = (struct i386_float_state *)state; -+ fpu = (struct x86_float_state *)state; - swap_i386_float_state(fpu, target_byte_sex); -- state += sizeof(struct i386_float_state); -+ state += sizeof(struct x86_float_state); - break; - case i386_EXCEPTION_STATE: - exc = (i386_exception_state_t *)state; diff --git a/data/openssh/com.openssh.sshd.plist b/data/openssh/com.openssh.sshd.plist index 5190d018d..eabe1b675 100644 --- a/data/openssh/com.openssh.sshd.plist +++ b/data/openssh/com.openssh.sshd.plist @@ -21,7 +21,7 @@ <key>Sockets</key> <dict> - <key>Listeners</key> + <key>SSHListener</key> <dict> <key>SockServiceName</key> <string>ssh</string> diff --git a/data/openssh/make.sh b/data/openssh/make.sh index 8b4fe0272..4896d9037 100644 --- a/data/openssh/make.sh +++ b/data/openssh/make.sh @@ -1,6 +1,6 @@ pkg:setup autoconf -pkg:configure --disable-strip --sysconfdir=/etc/ssh --disable-libutil --disable-utmp --disable-wtmp ac_cv_path_AR=arm-apple-darwin9-ar -- +pkg:configure --disable-strip --sysconfdir=/etc/ssh --disable-libutil --disable-utmp --disable-wtmp pkg:make pkg:install INSTALL_SSH_RAND_HELPER=yes pkg: cp -a %/sshd-keygen-wrapper /usr/libexec diff --git a/data/openssl/iphoneos.diff b/data/openssl/iphoneos.diff index f6eb68e53..62b171cf4 100644 --- a/data/openssl/iphoneos.diff +++ b/data/openssl/iphoneos.diff @@ -6,8 +6,8 @@ diff -ur openssl-1.0.2o/Configure openssl-1.0.2o+iPhone/Configure "debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", # iPhoneOS/iOS -"iphoneos-cross","llvm-gcc:-O3 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", -+"iphoneos-armv6","arm-apple-darwin9-gcc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", -+"iphoneos-arm64","aarch64-apple-darwin13-gcc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", ++"iphoneos-arm","arm-apple-darwin9-gcc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", ++"iphoneos-arm","aarch64-apple-darwin17-gcc:-O3 -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", ##### A/UX "aux3-gcc","gcc:-O2 -DTERMIO::(unknown):AUX:-lbsd:RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:::", @@ -24,7 +24,7 @@ diff -ur openssl-1.0.2o/config openssl-1.0.2o+iPhone/config + iphoneos-arm) + OUT="iphoneos-arm" ;; + iphoneos-arm64) -+ OUT="iphoneos-arm64" ;; ++ OUT="iphoneos-arm" ;; alpha-*-linux2) ISA=`awk '/cpu model/{print$4;exit(0);}' /proc/cpuinfo` case ${ISA:-generic} in diff --git a/data/pkg-config/_metadata/version b/data/pkg-config/_metadata/version index 39010d220..20f068700 100644 --- a/data/pkg-config/_metadata/version +++ b/data/pkg-config/_metadata/version @@ -1 +1 @@ -0.23 +0.29.2 diff --git a/data/pngcrush/make.sh b/data/pngcrush/make.sh index b2d27234d..ed983010a 100644 --- a/data/pngcrush/make.sh +++ b/data/pngcrush/make.sh @@ -1,4 +1,4 @@ pkg:setup -make CC=arm-apple-darwin9-gcc LD=arm-apple-darwin9-gcc +make CC="${PKG_TARG}-gcc" LD="${PKG_TARG}-gcc" -j8 pkg: mkdir -p /usr/bin pkg: cp -a pngcrush /usr/bin diff --git a/data/pthread-stubs/make.sh b/data/pthread-stubs/make.sh index 452a4bfd5..ce58b7c91 100644 --- a/data/pthread-stubs/make.sh +++ b/data/pthread-stubs/make.sh @@ -1,4 +1,5 @@ pkg:setup +cp ${PKG_BASE}/config.sub . pkg:configure make pkg:install diff --git a/data/python/Python-2.5.1.tgz b/data/python/Python-2.7.15.tar.xz Binary files differindex 2ce439a2e..cf32934b7 100644 --- a/data/python/Python-2.5.1.tgz +++ b/data/python/Python-2.7.15.tar.xz diff --git a/data/python/_metadata/ncurses.dep b/data/python/_metadata/ncurses.dep new file mode 120000 index 000000000..a395fad08 --- /dev/null +++ b/data/python/_metadata/ncurses.dep @@ -0,0 +1 @@ +../../ncurses
\ No newline at end of file diff --git a/data/python/_metadata/version b/data/python/_metadata/version index 73462a5a1..f24054fd3 100644 --- a/data/python/_metadata/version +++ b/data/python/_metadata/version @@ -1 +1 @@ -2.5.1 +2.7.15 diff --git a/data/python/bundle.diff b/data/python/bundle.diff deleted file mode 100644 index c7f38b986..000000000 --- a/data/python/bundle.diff +++ /dev/null @@ -1,32 +0,0 @@ -diff -r -u Python-2.5.1/configure.in Python-2.5.1+iPhone/configure.in ---- Python-2.5.1/configure.in 2007-03-12 10:50:51.000000000 +0000 -+++ Python-2.5.1+iPhone/configure.in 2008-01-09 11:45:20.000000000 +0000 -@@ -1484,7 +1484,12 @@ - if test "${enable_universalsdk}"; then - LDFLAGS="-arch i386 -arch ppc -isysroot ${UNIVERSALSDK} ${LDFLAGS}" - fi -- LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup' -+ LDSHARED='$(CC) $(LDFLAGS) -undefined dynamic_lookup' -+ if test "$enable_framework" ; then -+ LDSHARED="$LDSHARED -bundle" -+ else -+ LDSHARED="$LDSHARED -dynamiclib" -+ fi - BLDSHARED="$LDSHARED" - else - LDSHARED='$(CC) $(LDFLAGS) -bundle' -diff -r -u Python-2.5.1/Makefile.pre.in Python-2.5.1+iPhone/Makefile.pre.in ---- Python-2.5.1/Makefile.pre.in 2006-12-08 20:46:13.000000000 +0000 -+++ Python-2.5.1+iPhone/Makefile.pre.in 2008-01-09 12:00:36.000000000 +0000 -@@ -362,9 +362,9 @@ - $(AR) cr $@ $(MODOBJS) - $(RANLIB) $@ - --libpython$(VERSION).so: $(LIBRARY_OBJS) -+libpython$(VERSION).dylib: $(LIBRARY_OBJS) - if test $(INSTSONAME) != $(LDLIBRARY); then \ -- $(LDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \ -+ $(LDSHARED) -Wl,-dylib_install_name,$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \ - $(LN) -f $(INSTSONAME) $@; \ - else\ - $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \ diff --git a/data/python/clean.diff b/data/python/clean.diff deleted file mode 100644 index 36d5ba186..000000000 --- a/data/python/clean.diff +++ /dev/null @@ -1,11 +0,0 @@ -diff -ru BuildPython-2.5.1/Makefile.pre.in Python-2.5.1/Makefile.pre.in ---- BuildPython-2.5.1/Makefile.pre.in 2006-12-08 20:46:13.000000000 +0000 -+++ Python-2.5.1/Makefile.pre.in 2008-01-09 07:58:21.000000000 +0000 -@@ -1015,7 +1015,6 @@ - - clean: pycremoval - find . -name '*.o' -exec rm -f {} ';' -- find . -name '*.s[ol]' -exec rm -f {} ';' - find $(srcdir)/build -name 'fficonfig.h' -exec rm -f {} ';' || true - find $(srcdir)/build -name 'fficonfig.py' -exec rm -f {} ';' || true - diff --git a/data/python/common.diff b/data/python/common.diff deleted file mode 100644 index 64f9eb4f2..000000000 --- a/data/python/common.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -r -u Python-2.5.1/configure.in Python-2.5.1+iPhone/configure.in ---- Python-2.5.1/configure.in 2007-03-12 10:50:51.000000000 +0000 -+++ Python-2.5.1+iPhone/configure.in 2008-01-09 12:10:16.000000000 +0000 -@@ -814,7 +816,7 @@ - ;; - # is there any other compiler on Darwin besides gcc? - Darwin*) -- BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd" -+ BASECFLAGS="$BASECFLAGS -no-cpp-precomp -fno-common" - if test "${enable_universalsdk}"; then - BASECFLAGS="-arch ppc -arch i386 -isysroot ${UNIVERSALSDK} ${BASECFLAGS}" - fi diff --git a/data/python/cross.diff b/data/python/cross.diff deleted file mode 100644 index 68c84d061..000000000 --- a/data/python/cross.diff +++ /dev/null @@ -1,443 +0,0 @@ -diff -ru Python-2.5.1/configure.in Python-2.5.1+iPhone/configure.in ---- Python-2.5.1/configure.in 2007-03-12 10:50:51.000000000 +0000 -+++ Python-2.5.1+iPhone/configure.in 2008-04-29 10:53:21.000000000 +0000 -@@ -165,7 +165,7 @@ - AC_MSG_CHECKING(MACHDEP) - if test -z "$MACHDEP" - then -- ac_sys_system=`uname -s` -+ ac_sys_system=Darwin - if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \ - -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then - ac_sys_release=`uname -v` -@@ -247,6 +247,8 @@ - - esac - -+define_xopen_source=no -+ - if test $define_xopen_source = yes - then - # On Solaris w/ g++ it appears that _XOPEN_SOURCE has to be -@@ -1420,7 +1422,6 @@ - echo '+ Continuing in 10 seconds to let you to ponder. +' - echo '+ +' - echo '=====================================================================' -- sleep 10 - fi - AC_MSG_RESULT($SO) - AC_DEFINE_UNQUOTED(SHLIB_EXT, "$SO", [Define this to be extension of shared libraries (including the dot!).]) -@@ -1473,12 +1474,11 @@ - Darwin/*) - # Use -undefined dynamic_lookup whenever possible (10.3 and later). - # This allows an extension to be used in any Python -- cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'` -+ cur_target=10.5 - if test ${cur_target} '>' 10.2; then - cur_target=10.3 - fi - CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}} -- EXPORT_MACOSX_DEPLOYMENT_TARGET='' - if test ${MACOSX_DEPLOYMENT_TARGET-${cur_target}} '>' 10.2 - then - if test "${enable_universalsdk}"; then -@@ -3367,41 +3368,6 @@ - AC_MSG_RESULT(no) - fi - --AC_MSG_CHECKING(for %zd printf() format support) --AC_TRY_RUN([#include <stdio.h> --#include <stddef.h> --#include <string.h> -- --int main() --{ -- char buffer[256]; -- --#ifdef HAVE_SSIZE_T --typedef ssize_t Py_ssize_t; --#elif SIZEOF_VOID_P == SIZEOF_LONG --typedef long Py_ssize_t; --#else --typedef int Py_ssize_t; --#endif -- -- if(sprintf(buffer, "%zd", (size_t)123) < 0) -- return 1; -- -- if (strcmp(buffer, "123")) -- return 1; -- -- if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0) -- return 1; -- -- if (strcmp(buffer, "-123")) -- return 1; -- -- return 0; --}], --[AC_MSG_RESULT(yes) -- AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])], -- AC_MSG_RESULT(no)) -- - AC_CHECK_TYPE(socklen_t,, - AC_DEFINE(socklen_t,int, - Define to `int' if <sys/socket.h> does not define.),[ -diff -ru Python-2.5.1/Include/pyport.h Python-2.5.1+iPhone/Include/pyport.h ---- Python-2.5.1/Include/pyport.h 2006-10-02 15:24:01.000000000 +0000 -+++ Python-2.5.1+iPhone/Include/pyport.h 2008-04-29 10:53:21.000000000 +0000 -@@ -731,7 +731,7 @@ - * rather than waiting for integer multiplication to trigger bogus - * overflows. - */ --#error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)." -+//#error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)." - #endif - - #ifdef __cplusplus -diff -ru Python-2.5.1/Modules/_ctypes/cfield.c Python-2.5.1+iPhone/Modules/_ctypes/cfield.c ---- Python-2.5.1/Modules/_ctypes/cfield.c 2007-03-22 19:43:37.000000000 +0000 -+++ Python-2.5.1+iPhone/Modules/_ctypes/cfield.c 2008-04-29 10:53:21.000000000 +0000 -@@ -1642,7 +1642,7 @@ - struct _ffi_type **elements; - } ffi_type; - */ -- -+#if 0 - /* align and size are bogus for void, but they must not be zero */ - ffi_type ffi_type_void = { 1, 1, FFI_TYPE_VOID }; - -@@ -1664,5 +1664,5 @@ - /* ffi_type ffi_type_longdouble */ - - ffi_type ffi_type_pointer = { sizeof(void *), VOID_P_ALIGN, FFI_TYPE_POINTER }; -- -+#endif - /*---------------- EOF ----------------*/ -diff -ru Python-2.5.1/Modules/getaddrinfo.c Python-2.5.1+iPhone/Modules/getaddrinfo.c ---- Python-2.5.1/Modules/getaddrinfo.c 2003-08-17 21:28:39.000000000 +0000 -+++ Python-2.5.1+iPhone/Modules/getaddrinfo.c 2008-04-29 10:53:21.000000000 +0000 -@@ -38,7 +38,7 @@ - * - PF_UNSPEC case would be handled in getipnodebyname() with the AI_ALL flag. - */ - --#if 0 -+#if 1 - #include <sys/types.h> - #include <sys/param.h> - #include <sys/sysctl.h> -diff -ru Python-2.5.1/Modules/mmapmodule.c Python-2.5.1+iPhone/Modules/mmapmodule.c ---- Python-2.5.1/Modules/mmapmodule.c 2006-08-22 13:57:07.000000000 +0000 -+++ Python-2.5.1+iPhone/Modules/mmapmodule.c 2008-04-29 10:53:21.000000000 +0000 -@@ -36,6 +36,7 @@ - #ifdef UNIX - #include <sys/mman.h> - #include <sys/stat.h> -+#include <sys/fcntl.h> - - #if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE) - static int -diff -ru Python-2.5.1/setup.py Python-2.5.1+iPhone/setup.py ---- Python-2.5.1/setup.py 2007-02-14 12:53:41.000000000 +0000 -+++ Python-2.5.1+iPhone/setup.py 2008-04-29 11:05:35.000000000 +0000 -@@ -206,46 +206,16 @@ - ext_filename = os.path.join( - self.build_lib, - self.get_ext_filename(self.get_ext_fullname(ext.name))) -- try: -- imp.load_dynamic(ext.name, ext_filename) -- except ImportError, why: -- self.announce('*** WARNING: renaming "%s" since importing it' -- ' failed: %s' % (ext.name, why), level=3) -- assert not self.inplace -- basename, tail = os.path.splitext(ext_filename) -- newname = basename + "_failed" + tail -- if os.path.exists(newname): -- os.remove(newname) -- os.rename(ext_filename, newname) -- -- # XXX -- This relies on a Vile HACK in -- # distutils.command.build_ext.build_extension(). The -- # _built_objects attribute is stored there strictly for -- # use here. -- # If there is a failure, _built_objects may not be there, -- # so catch the AttributeError and move on. -- try: -- for filename in self._built_objects: -- os.remove(filename) -- except AttributeError: -- self.announce('unable to remove files (ignored)') -- except: -- exc_type, why, tb = sys.exc_info() -- self.announce('*** WARNING: importing extension "%s" ' -- 'failed with %s: %s' % (ext.name, exc_type, why), -- level=3) - - def get_platform(self): -- # Get value of sys.platform -- for platform in ['cygwin', 'beos', 'darwin', 'atheos', 'osf1']: -- if sys.platform.startswith(platform): -- return platform -- return sys.platform -+ return 'darwin' - - def detect_modules(self): -+ sysroot = os.getenv('PKG_ROOT') -+ - # Ensure that /usr/local is always used -- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') -- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') -+ add_dir_to_list(self.compiler.library_dirs, sysroot + '/usr/local/lib') -+ add_dir_to_list(self.compiler.include_dirs, sysroot + '/usr/local/include') - - # Add paths specified in the environment variables LDFLAGS and - # CPPFLAGS for header and library files. -@@ -294,10 +264,10 @@ - # if a file is found in one of those directories, it can - # be assumed that no additional -I,-L directives are needed. - lib_dirs = self.compiler.library_dirs + [ -- '/lib64', '/usr/lib64', -- '/lib', '/usr/lib', -+ sysroot + '/lib64', sysroot + '/usr/lib64', -+ sysroot + '/lib', sysroot + '/usr/lib', - ] -- inc_dirs = self.compiler.include_dirs + ['/usr/include'] -+ inc_dirs = self.compiler.include_dirs + [sysroot + '/usr/include'] - exts = [] - - config_h = sysconfig.get_config_h_filename() -@@ -309,9 +279,11 @@ - # Check for AtheOS which has libraries in non-standard locations - if platform == 'atheos': - lib_dirs += ['/system/libs', '/atheos/autolnk/lib'] -- lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep) - inc_dirs += ['/system/include', '/atheos/autolnk/include'] -- inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) -+ -+ lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep) -+ inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) -+ inc_dirs += os.getenv('CPATH', '').split(os.pathsep) - - # OSF/1 and Unixware have some stuff in /usr/ccs/lib (like -ldb) - if platform in ['osf1', 'unixware7', 'openunix8']: -@@ -476,7 +447,7 @@ - if find_file('readline/rlconf.h', inc_dirs, []) is None: - do_readline = False - if do_readline: -- if sys.platform == 'darwin': -+ if self.get_platform() == 'darwin': - # In every directory on the search path search for a dynamic - # library and then a static library, instead of first looking - # for dynamic libraries on the entiry path. -@@ -496,11 +467,11 @@ - elif self.compiler.find_library_file(lib_dirs, 'curses'): - readline_libs.append('curses') - elif self.compiler.find_library_file(lib_dirs + -- ['/usr/lib/termcap'], -+ [sysroot + '/usr/lib/termcap'], - 'termcap'): - readline_libs.append('termcap') - exts.append( Extension('readline', ['readline.c'], -- library_dirs=['/usr/lib/termcap'], -+ library_dirs=[sysroot + '/usr/lib/termcap'], - extra_link_args=readline_extra_link_args, - libraries=readline_libs) ) - if platform not in ['mac']: -@@ -520,20 +491,20 @@ - depends = ['socketmodule.h']) ) - # Detect SSL support for the socket module (via _ssl) - search_for_ssl_incs_in = [ -- '/usr/local/ssl/include', -- '/usr/contrib/ssl/include/' -+ sysroot + '/usr/local/ssl/include', -+ sysroot + '/usr/contrib/ssl/include/' - ] - ssl_incs = find_file('openssl/ssl.h', inc_dirs, - search_for_ssl_incs_in - ) - if ssl_incs is not None: - krb5_h = find_file('krb5.h', inc_dirs, -- ['/usr/kerberos/include']) -+ [sysroot + '/usr/kerberos/include']) - if krb5_h: - ssl_incs += krb5_h - ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, -- ['/usr/local/ssl/lib', -- '/usr/contrib/ssl/lib/' -+ [sysroot + '/usr/local/ssl/lib', -+ sysroot + '/usr/contrib/ssl/lib/' - ] ) - - if (ssl_incs is not None and -@@ -612,31 +583,25 @@ - - # construct a list of paths to look for the header file in on - # top of the normal inc_dirs. -- db_inc_paths = [ -- '/usr/include/db4', -- '/usr/local/include/db4', -- '/opt/sfw/include/db4', -- '/sw/include/db4', -- '/usr/include/db3', -- '/usr/local/include/db3', -- '/opt/sfw/include/db3', -- '/sw/include/db3', -- ] -+ db_inc_paths = [] -+ # major number specific paths -+ for x in (3,4): -+ db_inc_paths += map(lambda i: i + '/db%d' % x, inc_dirs) - # 4.x minor number specific paths - for x in (0,1,2,3,4,5): -- db_inc_paths.append('/usr/include/db4%d' % x) -- db_inc_paths.append('/usr/include/db4.%d' % x) -- db_inc_paths.append('/usr/local/BerkeleyDB.4.%d/include' % x) -- db_inc_paths.append('/usr/local/include/db4%d' % x) -- db_inc_paths.append('/pkg/db-4.%d/include' % x) -- db_inc_paths.append('/opt/db-4.%d/include' % x) -+ db_inc_paths += map(lambda i: i + '/db%d' % x, inc_dirs) -+ db_inc_paths += map(lambda i: i + '/db.%d' % x, inc_dirs) -+ db_inc_paths.append(sysroot + '/usr/local/BerkeleyDB.4.%d/include' % x) -+ db_inc_paths.append(sysroot + '/usr/local/include/db4%d' % x) -+ db_inc_paths.append(sysroot + '/pkg/db-4.%d/include' % x) -+ db_inc_paths.append(sysroot + '/opt/db-4.%d/include' % x) - # 3.x minor number specific paths - for x in (3,): -- db_inc_paths.append('/usr/include/db3%d' % x) -- db_inc_paths.append('/usr/local/BerkeleyDB.3.%d/include' % x) -- db_inc_paths.append('/usr/local/include/db3%d' % x) -- db_inc_paths.append('/pkg/db-3.%d/include' % x) -- db_inc_paths.append('/opt/db-3.%d/include' % x) -+ db_inc_paths += map(lambda i: i + '/db3%d' % x, inc_dirs) -+ db_inc_paths.append(sysroot + '/usr/local/BerkeleyDB.3.%d/include' % x) -+ db_inc_paths.append(sysroot + '/usr/local/include/db3%d' % x) -+ db_inc_paths.append(sysroot + '/pkg/db-3.%d/include' % x) -+ db_inc_paths.append(sysroot + '/opt/db-3.%d/include' % x) - - # Add some common subdirectories for Sleepycat DB to the list, - # based on the standard include directories. This way DB3/4 gets -@@ -746,13 +711,9 @@ - # We hunt for #define SQLITE_VERSION "n.n.n" - # We need to find >= sqlite version 3.0.8 - sqlite_incdir = sqlite_libdir = None -- sqlite_inc_paths = [ '/usr/include', -- '/usr/include/sqlite', -- '/usr/include/sqlite3', -- '/usr/local/include', -- '/usr/local/include/sqlite', -- '/usr/local/include/sqlite3', -- ] -+ sqlite_inc_paths = inc_dirs -+ sqlite_inc_paths += map(lambda i: i + '/sqlite', inc_dirs) -+ sqlite_inc_paths += map(lambda i: i + '/sqlite3', inc_dirs) - MIN_SQLITE_VERSION_NUMBER = (3, 0, 8) - MIN_SQLITE_VERSION = ".".join([str(x) - for x in MIN_SQLITE_VERSION_NUMBER]) -@@ -806,13 +767,13 @@ - '_sqlite/util.c', ] - - sqlite_defines = [] -- if sys.platform != "win32": -+ if self.get_platform() != "win32": - sqlite_defines.append(('MODULE_NAME', '"sqlite3"')) - else: - sqlite_defines.append(('MODULE_NAME', '\\"sqlite3\\"')) - - -- if sys.platform == 'darwin': -+ if self.get_platform() == 'darwin': - # In every directory on the search path search for a dynamic - # library and then a static library, instead of first looking - # for dynamic libraries on the entiry path. -@@ -837,7 +798,7 @@ - # accidentally building this module with a later version of the - # underlying db library. May BSD-ish Unixes incorporate db 1.85 - # symbols into libc and place the include file in /usr/include. -- f = "/usr/include/db.h" -+ f = sysroot + "/usr/include/db.h" - if os.path.exists(f): - data = open(f).read() - m = re.search(r"#s*define\s+HASHVERSION\s+2\s*", data) -@@ -962,7 +923,7 @@ - break - if version >= version_req: - if (self.compiler.find_library_file(lib_dirs, 'z')): -- if sys.platform == "darwin": -+ if self.get_platform() == "darwin": - zlib_extra_link_args = ('-Wl,-search_paths_first',) - else: - zlib_extra_link_args = () -@@ -972,7 +933,7 @@ - - # Gustavo Niemeyer's bz2 module. - if (self.compiler.find_library_file(lib_dirs, 'bz2')): -- if sys.platform == "darwin": -+ if self.get_platform() == "darwin": - bz2_extra_link_args = ('-Wl,-search_paths_first',) - else: - bz2_extra_link_args = () -@@ -1175,7 +1136,7 @@ - # For 8.4a2, the X11 headers are not included. Rather than include a - # complicated search, this is a hard-coded path. It could bail out - # if X11 libs are not found... -- include_dirs.append('/usr/X11R6/include') -+ include_dirs.append(sysroot + '/usr/X11R6/include') - frameworks = ['-framework', 'Tcl', '-framework', 'Tk'] - - ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], -@@ -1217,7 +1178,7 @@ - # Check for the include files on Debian and {Free,Open}BSD, where - # they're put in /usr/include/{tcl,tk}X.Y - dotversion = version -- if '.' not in dotversion and "bsd" in sys.platform.lower(): -+ if '.' not in dotversion and "bsd" in self.get_platform().lower(): - # OpenBSD and FreeBSD use Tcl/Tk library names like libtcl83.a, - # but the include subdirs are named like .../include/tcl8.3. - dotversion = dotversion[:-1] + '.' + dotversion[-1] -@@ -1244,19 +1205,19 @@ - - # Check for various platform-specific directories - if platform == 'sunos5': -- include_dirs.append('/usr/openwin/include') -- added_lib_dirs.append('/usr/openwin/lib') -- elif os.path.exists('/usr/X11R6/include'): -- include_dirs.append('/usr/X11R6/include') -- added_lib_dirs.append('/usr/X11R6/lib64') -- added_lib_dirs.append('/usr/X11R6/lib') -- elif os.path.exists('/usr/X11R5/include'): -- include_dirs.append('/usr/X11R5/include') -- added_lib_dirs.append('/usr/X11R5/lib') -+ include_dirs.append(sysroot + '/usr/openwin/include') -+ added_lib_dirs.append(sysroot + '/usr/openwin/lib') -+ elif os.path.exists(sysroot + '/usr/X11R6/include'): -+ include_dirs.append(sysroot + '/usr/X11R6/include') -+ added_lib_dirs.append(sysroot + '/usr/X11R6/lib64') -+ added_lib_dirs.append(sysroot + '/usr/X11R6/lib') -+ elif os.path.exists(sysroot + '/usr/X11R5/include'): -+ include_dirs.append(sysroot + '/usr/X11R5/include') -+ added_lib_dirs.append(sysroot + '/usr/X11R5/lib') - else: - # Assume default location for X11 -- include_dirs.append('/usr/X11/include') -- added_lib_dirs.append('/usr/X11/lib') -+ include_dirs.append(sysroot + '/usr/X11/include') -+ added_lib_dirs.append(sysroot + '/usr/X11/lib') - - # If Cygwin, then verify that X is installed before proceeding - if platform == 'cygwin': -@@ -1363,13 +1324,13 @@ - '_ctypes/malloc_closure.c'] - depends = ['_ctypes/ctypes.h'] - -- if sys.platform == 'darwin': -+ if self.get_platform() == 'darwin': - sources.append('_ctypes/darwin/dlfcn_simple.c') - include_dirs.append('_ctypes/darwin') - # XXX Is this still needed? - ## extra_link_args.extend(['-read_only_relocs', 'warning']) - -- elif sys.platform == 'sunos5': -+ elif self.get_platform() == 'sunos5': - # XXX This shouldn't be necessary; it appears that some - # of the assembler code is non-PIC (i.e. it has relocations - # when it shouldn't. The proper fix would be to rewrite diff --git a/data/python/distutils.diff b/data/python/distutils.diff deleted file mode 100644 index dacfdee33..000000000 --- a/data/python/distutils.diff +++ /dev/null @@ -1,115 +0,0 @@ -diff -ru BuildPython-2.5.1/Lib/distutils/util.py Python-2.5.1/Lib/distutils/util.py ---- BuildPython-2.5.1/Lib/distutils/util.py 2006-05-23 21:54:23.000000000 +0000 -+++ Python-2.5.1/Lib/distutils/util.py 2008-01-09 07:47:28.000000000 +0000 -@@ -13,110 +13,7 @@ - from distutils import log - - def get_platform (): -- """Return a string that identifies the current platform. This is used -- mainly to distinguish platform-specific build directories and -- platform-specific built distributions. Typically includes the OS name -- and version and the architecture (as supplied by 'os.uname()'), -- although the exact information included depends on the OS; eg. for IRIX -- the architecture isn't particularly important (IRIX only runs on SGI -- hardware), but for Linux the kernel version isn't particularly -- important. -- -- Examples of returned values: -- linux-i586 -- linux-alpha (?) -- solaris-2.6-sun4u -- irix-5.3 -- irix64-6.2 -- -- For non-POSIX platforms, currently just returns 'sys.platform'. -- """ -- if os.name != "posix" or not hasattr(os, 'uname'): -- # XXX what about the architecture? NT is Intel or Alpha, -- # Mac OS is M68k or PPC, etc. -- return sys.platform -- -- # Try to distinguish various flavours of Unix -- -- (osname, host, release, version, machine) = os.uname() -- -- # Convert the OS name to lowercase, remove '/' characters -- # (to accommodate BSD/OS), and translate spaces (for "Power Macintosh") -- osname = string.lower(osname) -- osname = string.replace(osname, '/', '') -- machine = string.replace(machine, ' ', '_') -- machine = string.replace(machine, '/', '-') -- -- if osname[:5] == "linux": -- # At least on Linux/Intel, 'machine' is the processor -- -- # i386, etc. -- # XXX what about Alpha, SPARC, etc? -- return "%s-%s" % (osname, machine) -- elif osname[:5] == "sunos": -- if release[0] >= "5": # SunOS 5 == Solaris 2 -- osname = "solaris" -- release = "%d.%s" % (int(release[0]) - 3, release[2:]) -- # fall through to standard osname-release-machine representation -- elif osname[:4] == "irix": # could be "irix64"! -- return "%s-%s" % (osname, release) -- elif osname[:3] == "aix": -- return "%s-%s.%s" % (osname, version, release) -- elif osname[:6] == "cygwin": -- osname = "cygwin" -- rel_re = re.compile (r'[\d.]+') -- m = rel_re.match(release) -- if m: -- release = m.group() -- elif osname[:6] == "darwin": -- # -- # For our purposes, we'll assume that the system version from -- # distutils' perspective is what MACOSX_DEPLOYMENT_TARGET is set -- # to. This makes the compatibility story a bit more sane because the -- # machine is going to compile and link as if it were -- # MACOSX_DEPLOYMENT_TARGET. -- from distutils.sysconfig import get_config_vars -- cfgvars = get_config_vars() -- -- macver = os.environ.get('MACOSX_DEPLOYMENT_TARGET') -- if not macver: -- macver = cfgvars.get('MACOSX_DEPLOYMENT_TARGET') -- -- if not macver: -- # Get the system version. Reading this plist is a documented -- # way to get the system version (see the documentation for -- # the Gestalt Manager) -- try: -- f = open('/System/Library/CoreServices/SystemVersion.plist') -- except IOError: -- # We're on a plain darwin box, fall back to the default -- # behaviour. -- pass -- else: -- m = re.search( -- r'<key>ProductUserVisibleVersion</key>\s*' + -- r'<string>(.*?)</string>', f.read()) -- f.close() -- if m is not None: -- macver = '.'.join(m.group(1).split('.')[:2]) -- # else: fall back to the default behaviour -- -- if macver: -- from distutils.sysconfig import get_config_vars -- release = macver -- osname = "macosx" -- -- -- if (release + '.') < '10.4.' and \ -- get_config_vars().get('UNIVERSALSDK', '').strip(): -- # The universal build will build fat binaries, but not on -- # systems before 10.4 -- machine = 'fat' -- -- elif machine in ('PowerPC', 'Power_Macintosh'): -- # Pick a sane name for the PPC architecture. -- machine = 'ppc' -- -- return "%s-%s-%s" % (osname, release, machine) -+ return 'darwin-10.5-arm' - - # get_platform () - diff --git a/data/python/dylib.diff b/data/python/dylib.diff deleted file mode 100644 index 979925d4a..000000000 --- a/data/python/dylib.diff +++ /dev/null @@ -1,33 +0,0 @@ -diff -ru Python-2.5.1/Python/dynload_shlib.c Python-2.5.1+iPhone/Python/dynload_shlib.c ---- Python-2.5.1/Python/dynload_shlib.c 2006-01-04 01:30:17.000000000 +0000 -+++ Python-2.5.1+iPhone/Python/dynload_shlib.c 2008-01-09 10:04:49.000000000 +0000 -@@ -40,11 +40,14 @@ - {".pyd", "rb", C_EXTENSION}, - {".dll", "rb", C_EXTENSION}, - #else --#ifdef __VMS -+#if defined(__VMS) - {".exe", "rb", C_EXTENSION}, - {".EXE", "rb", C_EXTENSION}, - {"module.exe", "rb", C_EXTENSION}, - {"MODULE.EXE", "rb", C_EXTENSION}, -+#elif defined(__APPLE__) -+ {".dylib", "rb", C_EXTENSION}, -+ {"module.dylib", "rb", C_EXTENSION}, - #else - {".so", "rb", C_EXTENSION}, - {"module.so", "rb", C_EXTENSION}, -diff -ru Python-2.5.1/configure.in Python-2.5.1+iPhone/configure.in ---- Python-2.5.1/configure.in 2007-03-12 10:50:51.000000000 +0000 -+++ Python-2.5.1+iPhone/configure.in 2008-01-09 10:27:52.000000000 +0000 -@@ -636,8 +638,8 @@ - RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} - INSTSONAME="$LDLIBRARY".$SOVERSION - ;; -- Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*) -- LDLIBRARY='libpython$(VERSION).so' -+ Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|Darwin*) -+ LDLIBRARY='libpython$(VERSION)'"${SO-so}" - BLDLIBRARY='-L. -lpython$(VERSION)' - RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} - case $ac_sys_system in diff --git a/data/python/environ.diff b/data/python/environ.diff deleted file mode 100644 index 9e011b5dc..000000000 --- a/data/python/environ.diff +++ /dev/null @@ -1,35 +0,0 @@ -diff -ru Python-2.5.1/Misc/setuid-prog.c Python-2.5.1+iPhone/Misc/setuid-prog.c ---- Python-2.5.1/Misc/setuid-prog.c 1998-09-10 20:18:09.000000000 +0000 -+++ Python-2.5.1+iPhone/Misc/setuid-prog.c 2008-04-13 02:50:37.000000000 +0000 -@@ -102,9 +102,8 @@ - clean_environ(void) - { - char **p; -- extern char **environ; - -- for (p = environ; *p; p++) { -+ for (p = _NSGetEnviron(); *p; p++) { - if (strncmp(*p, "LD_", 3) == 0) - **p = 'X'; - else if (strncmp(*p, "_RLD", 4) == 0) -diff -ru Python-2.5.1/Modules/posixmodule.c Python-2.5.1+iPhone/Modules/posixmodule.c ---- Python-2.5.1/Modules/posixmodule.c 2007-04-04 18:30:56.000000000 +0000 -+++ Python-2.5.1+iPhone/Modules/posixmodule.c 2008-04-29 10:50:27.000000000 +0000 -@@ -339,7 +339,7 @@ - #endif - - /* Return a dictionary corresponding to the POSIX environment table */ --#ifdef WITH_NEXT_FRAMEWORK -+#if 1 - /* On Darwin/MacOSX a shared library or framework has no access to - ** environ directly, we must obtain it with _NSGetEnviron(). - */ -@@ -357,7 +357,7 @@ - d = PyDict_New(); - if (d == NULL) - return NULL; --#ifdef WITH_NEXT_FRAMEWORK -+#if 1 - if (environ == NULL) - environ = *_NSGetEnviron(); - #endif diff --git a/data/python/framework.diff b/data/python/framework.diff deleted file mode 100644 index 2593a590c..000000000 --- a/data/python/framework.diff +++ /dev/null @@ -1,28 +0,0 @@ -diff -r -u Python-2.5.1/Mac/Makefile.in Python-2.5.1+iPhone/Mac/Makefile.in ---- Python-2.5.1/Mac/Makefile.in 2006-06-11 20:23:29.000000000 +0000 -+++ Python-2.5.1+iPhone/Mac/Makefile.in 2008-01-09 11:32:54.000000000 +0000 -@@ -223,7 +223,6 @@ - done - - -- $(RUNSHARED) $(BUILDPYTHON) $(CACHERSRC) -v $(DESTDIR)$(MACLIBDEST) $(DESTDIR)$(MACTOOLSDEST) - $(RUNSHARED) $(BUILDPYTHON) -Wi -tt $(compileall) -d $(MACTOOLSDEST) -x badsyntax $(DESTDIR)$(MACTOOLSDEST) - $(RUNSHARED) $(BUILDPYTHON) -O -Wi -tt $(compileall) -d $(MACTOOLSDEST) -x badsyntax $(DESTDIR)$(MACTOOLSDEST) - -diff -r -u Python-2.5.1/Makefile.pre.in Python-2.5.1+iPhone/Makefile.pre.in ---- Python-2.5.1/Makefile.pre.in 2006-12-08 20:46:13.000000000 +0000 -+++ Python-2.5.1+iPhone/Makefile.pre.in 2008-01-09 11:34:00.000000000 +0000 -@@ -391,8 +391,11 @@ - -compatibility_version $(VERSION) \ - -current_version $(VERSION); \ - else \ -- libtool -o $(LDLIBRARY) -dynamic $(OTHER_LIBTOOL_OPT) $(LIBRARY) \ -- @LIBTOOL_CRUFT@ ;\ -+ $(CC) -o $(LDLIBRARY) -arch_only arm -dynamiclib \ -+ -all_load $(LIBRARY) -Wl,-single_module \ -+ -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \ -+ -compatibility_version $(VERSION) \ -+ -current_version $(VERSION); \ - fi - $(INSTALL) -d -m $(DIRMODE) \ - $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj diff --git a/data/python/gestalt.diff b/data/python/gestalt.diff deleted file mode 100644 index febf9c32b..000000000 --- a/data/python/gestalt.diff +++ /dev/null @@ -1,25 +0,0 @@ -diff -ru Python-2.5.1/Lib/ctypes/__init__.py Python-2.5.1+iPhone/Lib/ctypes/__init__.py ---- Python-2.5.1/Lib/ctypes/__init__.py 2007-03-09 20:21:16.000000000 +0000 -+++ Python-2.5.1+iPhone/Lib/ctypes/__init__.py 2008-03-08 20:35:54.000000000 +0000 -@@ -24,19 +24,13 @@ - - DEFAULT_MODE = RTLD_LOCAL - if _os.name == "posix" and _sys.platform == "darwin": -- import gestalt -+ import platform - -- # gestalt.gestalt("sysv") returns the version number of the -- # currently active system file as BCD. -- # On OS X 10.4.6 -> 0x1046 -- # On OS X 10.2.8 -> 0x1028 -- # See also http://www.rgaros.nl/gestalt/ -- # - # On OS X 10.3, we use RTLD_GLOBAL as default mode - # because RTLD_LOCAL does not work at least on some - # libraries. - -- if gestalt.gestalt("sysv") < 0x1040: -+ if int(platform.release().split('.')[0]) < 8: - DEFAULT_MODE = RTLD_GLOBAL - - from _ctypes import FUNCFLAG_CDECL as _FUNCFLAG_CDECL, \ diff --git a/data/python/longlong.diff b/data/python/longlong.diff deleted file mode 100644 index 82e339059..000000000 --- a/data/python/longlong.diff +++ /dev/null @@ -1,28 +0,0 @@ -diff -ru Python-2.5.1/Modules/_ctypes/cfield.c Python-2.5.1+iPhone/Modules/_ctypes/cfield.c ---- Python-2.5.1/Modules/_ctypes/cfield.c 2007-03-22 19:43:37.000000000 +0000 -+++ Python-2.5.1+iPhone/Modules/_ctypes/cfield.c 2008-03-08 21:04:51.000000000 +0000 -@@ -1538,20 +1538,13 @@ - { 'H', H_set, H_get, &ffi_type_ushort, H_set_sw, H_get_sw}, - { 'i', i_set, i_get, &ffi_type_sint, i_set_sw, i_get_sw}, - { 'I', I_set, I_get, &ffi_type_uint, I_set_sw, I_get_sw}, --/* XXX Hm, sizeof(int) == sizeof(long) doesn't hold on every platform */ --/* As soon as we can get rid of the type codes, this is no longer a problem */ --#if SIZEOF_LONG == 4 -- { 'l', l_set, l_get, &ffi_type_sint, l_set_sw, l_get_sw}, -- { 'L', L_set, L_get, &ffi_type_uint, L_set_sw, L_get_sw}, --#elif SIZEOF_LONG == 8 - { 'l', l_set, l_get, &ffi_type_slong, l_set_sw, l_get_sw}, - { 'L', L_set, L_get, &ffi_type_ulong, L_set_sw, L_get_sw}, --#else --# error --#endif -+/* XXX Hm, sizeof(long) == sizeof(int64_t) doesn't hold on every platform */ -+/* As soon as we can get rid of the type codes, this is no longer a problem */ - #ifdef HAVE_LONG_LONG -- { 'q', q_set, q_get, &ffi_type_slong, q_set_sw, q_get_sw}, -- { 'Q', Q_set, Q_get, &ffi_type_ulong, Q_set_sw, Q_get_sw}, -+ { 'q', q_set, q_get, &ffi_type_sint64, q_set_sw, q_get_sw}, -+ { 'Q', Q_set, Q_get, &ffi_type_uint64, Q_set_sw, Q_get_sw}, - #endif - { 'P', P_set, P_get, &ffi_type_pointer}, - { 'z', z_set, z_get, &ffi_type_pointer}, diff --git a/data/python/make.sh b/data/python/make.sh index 059937971..e4ba3d1d9 100644 --- a/data/python/make.sh +++ b/data/python/make.sh @@ -1,23 +1,8 @@ pkg:extract cd * -./configure --prefix=/usr -make -cp -a Parser/pgen{,_} -cp -a python{,_} -sleep 10 +./configure +make -j8 pkg:patch -autoconf -SO=.dylib CXX=${PKG_TARG}-g++ pkg:configure --enable-shared --with-system-ffi --with-signal-module --disable-toolbox-glue -make clean -rm libpython2.5.a -#make Include/graminit.h Python/graminit.c CC=gcc BASECFLAGS= -#cp -a Parser/pgen pgen-host -#make clean -make python AR=${PKG_TARG}-ar -sleep 2 -touch python_ -make BUILDPYTHON=python_ -pkg:install BUILDPYTHON=python_ -pkg: rm -f /usr/bin/python{,2.5} -pkg: cp -fa python /usr/bin/python2.5 -pkg: ln -s python2.5 /usr/bin/python +CFLAGS='-Wno-format' pkg:configure --disable-ipv6 ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no ac_cv_have_long_long_format=yes --disable-toolbox-glue +make -j8 +pkg:install diff --git a/data/python/modules.diff b/data/python/modules.diff deleted file mode 100644 index f5b9985b6..000000000 --- a/data/python/modules.diff +++ /dev/null @@ -1,32 +0,0 @@ -diff -ru Python-2.5.1/setup.py Python-2.5.1+iPhone/setup.py ---- Python-2.5.1/setup.py 2007-02-14 12:53:41.000000000 +0000 -+++ Python-2.5.1+iPhone/setup.py 2008-01-09 12:43:58.000000000 +0000 -@@ -460,8 +430,7 @@ - # 64-bit platforms. - exts.append( Extension('audioop', ['audioop.c']) ) - -- # Disabled on 64-bit platforms -- if sys.maxint != 9223372036854775807L: -+ if True: - # Operations on images - exts.append( Extension('imageop', ['imageop.c']) ) - # Read SGI RGB image files (but coded portably) -@@ -606,7 +577,7 @@ - # a release. Most open source OSes come with one or more - # versions of BerkeleyDB already installed. - -- max_db_ver = (4, 5) -+ max_db_ver = (4, 6) - min_db_ver = (3, 3) - db_setup_debug = False # verbose debug prints from this script? - -@@ -1025,8 +996,7 @@ - exts.append(Extension('_codecs_' + loc, - ['cjkcodecs/_codecs_%s.c' % loc])) - -- # Dynamic loading module -- if sys.maxint == 0x7fffffff: -+ if True: - # This requires sizeof(int) == sizeof(long) == sizeof(char*) - dl_inc = find_file('dlfcn.h', [], inc_dirs) - if (dl_inc is not None) and (platform not in ['atheos']): diff --git a/data/python/starpython.diff b/data/python/starpython.diff new file mode 100644 index 000000000..8750b00e7 --- /dev/null +++ b/data/python/starpython.diff @@ -0,0 +1,152 @@ +Only in Python-2.7.15+iPhone/Lib: _scproxy.py +diff -ur Python-2.7.15/Makefile.pre.in Python-2.7.15+iPhone/Makefile.pre.in +--- Python-2.7.15/Makefile.pre.in 2018-04-29 12:47:33.000000000 -1000 ++++ Python-2.7.15+iPhone/Makefile.pre.in 2018-09-04 18:39:57.000000000 -1000 +@@ -1131,28 +1131,30 @@ + $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \ + $(DESTDIR)$(LIBDEST)/distutils/tests ; \ + fi +- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- $(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ +- -d $(LIBDEST) -f \ +- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ +- $(DESTDIR)$(LIBDEST) +- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- $(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ +- -d $(LIBDEST) -f \ +- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ +- $(DESTDIR)$(LIBDEST) +- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- $(PYTHON_FOR_BUILD) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ +- -d $(LIBDEST)/site-packages -f \ +- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages +- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- $(PYTHON_FOR_BUILD) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ +- -d $(LIBDEST)/site-packages -f \ +- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages +- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt +- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ +- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt ++# compile use host python, which may not be 2.7.9, which lead to fail. ++# So, we not compile, by srplab ++# PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ ++# $(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ ++# -d $(LIBDEST) -f \ ++# -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ ++# $(DESTDIR)$(LIBDEST) ++# PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ ++# $(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ ++# -d $(LIBDEST) -f \ ++# -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \ ++# $(DESTDIR)$(LIBDEST) ++# -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ ++# $(PYTHON_FOR_BUILD) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ ++# -d $(LIBDEST)/site-packages -f \ ++# -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages ++# -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ ++# $(PYTHON_FOR_BUILD) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \ ++# -d $(LIBDEST)/site-packages -f \ ++# -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages ++# -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ ++# $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt ++# -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ ++# $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt + + # Create the PLATDIR source directory, if one wasn't distributed.. + $(srcdir)/Lib/$(PLATDIR): +Only in Python-2.7.15+iPhone: Makefile.pre.in.orig +diff -ur Python-2.7.15/Python/dynload_shlib.c Python-2.7.15+iPhone/Python/dynload_shlib.c +--- Python-2.7.15/Python/dynload_shlib.c 2018-04-29 12:47:33.000000000 -1000 ++++ Python-2.7.15+iPhone/Python/dynload_shlib.c 2018-09-04 18:39:57.000000000 -1000 +@@ -84,6 +84,14 @@ + PyOS_snprintf(funcname, sizeof(funcname), + LEAD_UNDERSCORE "init%.200s", shortname); + ++ /* On IOS, dlopen crash as soon as we try to open one of our library. ++ * Instead, we have done a redirection of linking to convert our .so into a ++ * .a. Then the main executable is linked with theses symbol. So, instead ++ * of trying to dlopen, directly do the dlsym. ++ * -- Mathieu ++ */ ++ return (dl_funcptr) dlsym(RTLD_DEFAULT, funcname); ++#if 0 + if (fp != NULL) { + int i; + struct stat statb; +@@ -140,4 +148,5 @@ + handles[nhandles++].handle = handle; + p = (dl_funcptr) dlsym(handle, funcname); + return p; ++#endif + } +diff -ur Python-2.7.15/Python/pythonrun.c Python-2.7.15+iPhone/Python/pythonrun.c +--- Python-2.7.15/Python/pythonrun.c 2018-04-29 12:47:33.000000000 -1000 ++++ Python-2.7.15+iPhone/Python/pythonrun.c 2018-09-04 18:39:57.000000000 -1000 +@@ -287,8 +287,10 @@ + _PyGILState_Init(interp, tstate); + #endif /* WITH_THREAD */ + ++#if 0 + if (!Py_NoSiteFlag) + initsite(); /* Module site */ ++#endif + + if ((p = Py_GETENV("PYTHONIOENCODING")) && *p != '\0') { + p = icodeset = codeset = strdup(p); +Only in Python-2.7.15+iPhone/Python: pythonrun.c.orig +Only in Python-2.7.15+iPhone: config.site +diff -ur Python-2.7.15/configure Python-2.7.15+iPhone/configure +--- Python-2.7.15/configure 2018-04-29 12:47:33.000000000 -1000 ++++ Python-2.7.15+iPhone/configure 2018-09-04 18:39:57.000000000 -1000 +@@ -3287,6 +3287,9 @@ + *-*-cygwin*) + ac_sys_system=Cygwin + ;; ++ *-*-darwin*) ++ ac_sys_system=Darwin ++ ;; + *) + # for now, limit cross builds to known configurations + MACHDEP="unknown" +@@ -3333,6 +3336,15 @@ + *-*-cygwin*) + _host_cpu= + ;; ++ *-*-darwin*) ++ case "$host_cpu" in ++ arm*) ++ _host_cpu=arm ++ ;; ++ *) ++ _host_cpu=$host_cpu ++ esac ++ ;; + *) + # for now, limit cross builds to known configurations + MACHDEP="unknown" +Only in Python-2.7.15+iPhone: configure.orig +diff -ur Python-2.7.15/setup.py Python-2.7.15+iPhone/setup.py +--- Python-2.7.15/setup.py 2018-04-29 12:47:33.000000000 -1000 ++++ Python-2.7.15+iPhone/setup.py 2018-09-04 18:40:07.000000000 -1000 +@@ -188,7 +188,7 @@ + ext_map = dict((ext.name, i) for i, ext in enumerate(extensions)) + if "_ctypes" in ext_map: + ctypes = extensions.pop(ext_map["_ctypes"]) +- extensions.append(ctypes) ++ # extensions.append(ctypes) # not build ctypes, by srplab + self.extensions = extensions + + # Fix up the autodetected modules, prefixing all the source files +@@ -1433,8 +1433,8 @@ + missing.append('zlib') + else: + missing.append('zlib') +- else: +- missing.append('zlib') ++ #else: ++ # missing.append('zlib') + + # Helper module for various ascii-encoders. Uses zlib for an optimized + # crc32 if we have it. Otherwise binascii uses its own. +Only in Python-2.7.15+iPhone: setup.py.orig diff --git a/data/python/test.diff b/data/python/test.diff deleted file mode 100644 index e2258207b..000000000 --- a/data/python/test.diff +++ /dev/null @@ -1,17 +0,0 @@ -diff -ru Python-2.5.1/Makefile.pre.in Python-2.5.1+iPhone/Makefile.pre.in ---- Python-2.5.1/Makefile.pre.in 2006-12-08 20:46:13.000000000 +0000 -+++ Python-2.5.1+iPhone/Makefile.pre.in 2008-01-09 08:21:39.000000000 +0000 -@@ -775,11 +775,11 @@ - PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST) -f \ -- -x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST) -+ -x 'bad_coding|badsyntax|site-packages|test' $(DESTDIR)$(LIBDEST) - PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST) -f \ -- -x 'bad_coding|badsyntax|site-packages' $(DESTDIR)$(LIBDEST) -+ -x 'bad_coding|badsyntax|site-packages|test' $(DESTDIR)$(LIBDEST) - -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \ - ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \ - -d $(LIBDEST)/site-packages -f \ diff --git a/data/python/timestamp.diff b/data/python/timestamp.diff index 76642259f..cebeb8131 100644 --- a/data/python/timestamp.diff +++ b/data/python/timestamp.diff @@ -1,6 +1,6 @@ -diff -ru Python-2.5.1/Modules/getbuildinfo.c Python-2.5.1+iPhone/Modules/getbuildinfo.c ---- Python-2.5.1/Modules/getbuildinfo.c 2006-01-18 09:13:51.000000000 +0000 -+++ Python-2.5.1+iPhone/Modules/getbuildinfo.c 2008-06-19 08:00:45.000000000 +0000 +diff -ur Python-2.7.15/Modules/getbuildinfo.c Python-2.7.15+iPhone/Modules/getbuildinfo.c +--- Python-2.7.15/Modules/getbuildinfo.c 2018-04-29 12:47:33.000000000 -1000 ++++ Python-2.7.15+iPhone/Modules/getbuildinfo.c 2018-09-04 16:04:45.000000000 -1000 @@ -5,20 +5,12 @@ #endif @@ -20,5 +20,5 @@ diff -ru Python-2.5.1/Modules/getbuildinfo.c Python-2.5.1+iPhone/Modules/getbuil #endif -#endif - #ifdef SUBWCREV - #define SVNVERSION "$WCRANGE$$WCMODS?M:$" + /* XXX Only unix build process has been tested */ + #ifndef GITVERSION diff --git a/data/python/zz-setup.diff b/data/python/zz-setup.diff new file mode 100644 index 000000000..6116ff998 --- /dev/null +++ b/data/python/zz-setup.diff @@ -0,0 +1,175 @@ +diff -ur Python-2.7.15/setup.py Python-2.7.15+iPhone/setup.py +--- Python-2.7.15/setup.py 2018-04-29 12:47:33.000000000 -1000 ++++ Python-2.7.15+iPhone/setup.py 2018-09-04 21:49:58.000000000 -1000 +@@ -18,6 +18,7 @@ + from distutils.spawn import find_executable + + cross_compiling = "_PYTHON_HOST_PLATFORM" in os.environ ++sysroot = os.environ['PKG_ROOT'] + + def get_platform(): + # cross build +@@ -49,9 +50,7 @@ + """ + cflags = sysconfig.get_config_var('CFLAGS') + m = re.search(r'-isysroot\s+(\S+)', cflags) +- if m is None: +- sysroot = '/' +- else: ++ if m is not None: + sysroot = m.group(1) + return sysroot + +@@ -80,6 +79,8 @@ + # system, but with only header files and libraries. + sysroot = macosx_sdk_root() + ++ sysroot = os.environ['PKG_ROOT'] ++ + # Check the standard locations + for dir in std_dirs: + f = os.path.join(dir, filename) +@@ -110,6 +111,8 @@ + if host_platform == 'darwin': + sysroot = macosx_sdk_root() + ++ sysroot = os.environ['PKG_ROOT'] ++ + # Check whether the found file is in one of the standard directories + dirname = os.path.dirname(result) + for p in std_dirs: +@@ -461,6 +464,7 @@ + if cross_compiling: + self.add_gcc_paths() + self.add_multiarch_paths() ++ sysroot = os.environ['PKG_ROOT'] + + # Add paths specified in the environment variables LDFLAGS and + # CPPFLAGS for header and library files. +@@ -497,7 +501,8 @@ + add_dir_to_list(dir_list, directory) + + if os.path.normpath(sys.prefix) != '/usr' \ +- and not sysconfig.get_config_var('PYTHONFRAMEWORK'): ++ and not sysconfig.get_config_var('PYTHONFRAMEWORK') \ ++ and not cross_compiling: + # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework + # (PYTHONFRAMEWORK is set) to avoid # linking problems when + # building a framework with different architectures than +@@ -519,12 +524,12 @@ + lib_dirs = self.compiler.library_dirs[:] + if not cross_compiling: + for d in ( +- '/usr/include', ++ sysroot + '/usr/include', + ): + add_dir_to_list(inc_dirs, d) + for d in ( +- '/lib64', '/usr/lib64', +- '/lib', '/usr/lib', ++ sysroot + '/lib64', sysroot + '/usr/lib64', ++ sysroot + '/lib', sysroot + '/usr/lib', + ): + add_dir_to_list(lib_dirs, d) + exts = [] +@@ -808,21 +813,22 @@ + depends=['socketmodule.h'], + libraries=math_libs) ) + # Detect SSL support for the socket module (via _ssl) ++ sysroot = os.environ['PKG_ROOT'] + search_for_ssl_incs_in = [ +- '/usr/local/ssl/include', +- '/usr/contrib/ssl/include/' ++ sysroot + '/usr/local/ssl/include', ++ sysroot + '/usr/contrib/ssl/include/' + ] + ssl_incs = find_file('openssl/ssl.h', inc_dirs, + search_for_ssl_incs_in + ) + if ssl_incs is not None: + krb5_h = find_file('krb5.h', inc_dirs, +- ['/usr/kerberos/include']) ++ [sysroot + '/usr/kerberos/include']) + if krb5_h: + ssl_incs += krb5_h + ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, +- ['/usr/local/ssl/lib', +- '/usr/contrib/ssl/lib/' ++ [sysroot + '/usr/local/ssl/lib', ++ sysroot + '/usr/contrib/ssl/lib/' + ] ) + + if (ssl_incs is not None and +@@ -944,16 +950,17 @@ + + # construct a list of paths to look for the header file in on + # top of the normal inc_dirs. ++ sysroot = os.environ['PKG_ROOT'] + db_inc_paths = [ +- '/usr/include/db4', +- '/usr/local/include/db4', +- '/opt/sfw/include/db4', +- '/usr/include/db3', +- '/usr/local/include/db3', +- '/opt/sfw/include/db3', ++ sysroot + '/usr/include/db4', ++ sysroot + '/usr/local/include/db4', ++ sysroot + '/opt/sfw/include/db4', ++ sysroot + '/usr/include/db3', ++ sysroot + '/usr/local/include/db3', ++ sysroot + '/opt/sfw/include/db3', + # Fink defaults (http://fink.sourceforge.net/) +- '/sw/include/db4', +- '/sw/include/db3', ++ sysroot + '/sw/include/db4', ++ sysroot + '/sw/include/db3', + ] + # 4.x minor number specific paths + for x in gen_db_minor_ver_nums(4): +@@ -1133,8 +1140,7 @@ + # Scan the default include directories before the SQLite specific + # ones. This allows one to override the copy of sqlite on OSX, + # where /usr/include contains an old version of sqlite. +- if host_platform == 'darwin': +- sysroot = macosx_sdk_root() ++ sysroot = os.environ['PKG_ROOT'] + + for d_ in inc_dirs + sqlite_inc_paths: + d = d_ +@@ -1231,7 +1237,6 @@ + + if host_platform == 'darwin': + if is_macosx_sdk_path(f): +- sysroot = macosx_sdk_root() + f = os.path.join(sysroot, f[1:]) + + if os.path.exists(f) and not db_incs: +@@ -1797,7 +1802,6 @@ + join(os.getenv('HOME'), '/Library/Frameworks') + ] + +- sysroot = macosx_sdk_root() + + # Find the directory that contains the Tcl.framework and Tk.framework + # bundles. +@@ -1843,6 +1847,7 @@ + cflags = sysconfig.get_config_vars('CFLAGS')[0] + archs = re.findall('-arch\s+(\w+)', cflags) + ++ sysroot = os.environ['PKG_ROOT'] + if is_macosx_sdk_path(F): + fp = os.popen("file %s/Tk.framework/Tk | grep 'for architecture'"%(os.path.join(sysroot, F[1:]),)) + else: +@@ -2117,10 +2122,11 @@ + if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"): + return + ++ sysroot = os.environ['PKG_ROOT'] + if host_platform == 'darwin': + # OS X 10.5 comes with libffi.dylib; the include files are + # in /usr/include/ffi +- inc_dirs.append('/usr/include/ffi') ++ inc_dirs.append(sysroot + '/usr/include/ffi') + + ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] + if not ffi_inc or ffi_inc[0] == '': diff --git a/data/rdesktop/make.sh b/data/rdesktop/make.sh index 4bb8c7f34..1fae0d2f8 100644 --- a/data/rdesktop/make.sh +++ b/data/rdesktop/make.sh @@ -1,4 +1,5 @@ pkg:setup +cp ${PKG_BASE}/config.sub . pkg:configure --with-openssl="$(PKG_DEST_ openssl)/usr" --with-sound=no -make +make -j8 pkg:install diff --git a/data/readline/make.sh b/data/readline/make.sh index de036d83d..81827e1ae 100644 --- a/data/readline/make.sh +++ b/data/readline/make.sh @@ -8,9 +8,11 @@ done pkg:patch autoconf pkg:configure ac_cv_func_strcoll_works=yes bash_cv_func_sigsetjmp=present bash_cv_func_ctype_nonascii=no bash_cv_must_reinstall_sighandlers=no bash_cv_func_strcoll_broken=yes -make CFLAGS='-O2 -mthumb' +make CFLAGS='-O2' pkg:install pkg: ln -s libreadline.5.2.dylib /usr/lib/libreadline.5.dylib pkg: ln -s libreadline.6.0.dylib /usr/lib/libreadline.5.2.dylib +pkg: ln -s libreadline.7.0.dylib /usr/lib/libreadline.6.0.dylib pkg: ln -s libhistory.5.2.dylib /usr/lib/libhistory.5.dylib pkg: ln -s libhistory.6.0.dylib /usr/lib/libhistory.5.2.dylib +pkg: ln -s libhistory.7.0.dylib /usr/lib/libhistory.6.0.dylib diff --git a/data/shell-cmds/make.sh b/data/shell-cmds/make.sh index f8a59e1c8..84375686b 100644 --- a/data/shell-cmds/make.sh +++ b/data/shell-cmds/make.sh @@ -1,6 +1,6 @@ pkg:setup mkdir -p "${PKG_DEST}/usr/bin" for bin in killall renice script time which; do - ${PKG_TARG}-gcc -O2 -mthumb -o "${bin}/${bin}" "${bin}"/*.c -D'__FBSDID(x)=' -save-temps + ${PKG_TARG}-gcc -O2 -o "${bin}/${bin}" "${bin}"/*.c -D'__FBSDID(x)=' -save-temps cp -a "${bin}/${bin}" "${PKG_DEST}/usr/bin" done diff --git a/data/sm/_metadata/uuid.dep b/data/sm/_metadata/uuid.dep new file mode 120000 index 000000000..7b224b803 --- /dev/null +++ b/data/sm/_metadata/uuid.dep @@ -0,0 +1 @@ +../../uuid
\ No newline at end of file diff --git a/data/sm/_metadata/version b/data/sm/_metadata/version index 21e8796a0..23aa83906 100644 --- a/data/sm/_metadata/version +++ b/data/sm/_metadata/version @@ -1 +1 @@ -1.0.3 +1.2.2 diff --git a/data/sm/libSM-1.0.3.tar.gz b/data/sm/libSM-1.0.3.tar.gz Binary files differdeleted file mode 100644 index 4d3f5ae49..000000000 --- a/data/sm/libSM-1.0.3.tar.gz +++ /dev/null diff --git a/data/sm/libSM-1.2.2.tar.bz2 b/data/sm/libSM-1.2.2.tar.bz2 Binary files differnew file mode 100644 index 000000000..ed7395820 --- /dev/null +++ b/data/sm/libSM-1.2.2.tar.bz2 diff --git a/data/sm/make.sh b/data/sm/make.sh index 452a4bfd5..9362b0640 100644 --- a/data/sm/make.sh +++ b/data/sm/make.sh @@ -1,4 +1,5 @@ pkg:setup pkg:configure -make +make -j8 pkg:install +pkg: find /usr/lib -name '*.la' | xargs rm diff --git a/data/socat/_metadata/version b/data/socat/_metadata/version index 7a29665aa..eff1933a1 100644 --- a/data/socat/_metadata/version +++ b/data/socat/_metadata/version @@ -1 +1 @@ -1.7.1.1 +1.7.3.2 diff --git a/data/socat/make.sh b/data/socat/make.sh index 2593b140f..0293e1444 100644 --- a/data/socat/make.sh +++ b/data/socat/make.sh @@ -1,4 +1,4 @@ pkg:setup pkg:configure --disable-tun ac_cv_ispeed_offset=9 sc_cv_sys_crdly_shift=12 sc_cv_sys_tabdly_shift=-1 sc_cv_sys_csize_shift=8 ac_cv_header_libutil_h=no -make +make CFLAGS="-O2 -D__APPLE_USE_RFC_3542" pkg:install diff --git a/data/socat/socat-1.7.1.1.tar.bz2 b/data/socat/socat-1.7.1.1.tar.bz2 Binary files differdeleted file mode 100644 index b9275701a..000000000 --- a/data/socat/socat-1.7.1.1.tar.bz2 +++ /dev/null diff --git a/data/socat/socat-1.7.3.2.tar.bz2 b/data/socat/socat-1.7.3.2.tar.bz2 Binary files differnew file mode 100644 index 000000000..807140646 --- /dev/null +++ b/data/socat/socat-1.7.3.2.tar.bz2 diff --git a/data/sqlite3/_metadata/sqlite3-lib.dep b/data/sqlite3/_metadata/sqlite3-lib.dep deleted file mode 120000 index b13240f0d..000000000 --- a/data/sqlite3/_metadata/sqlite3-lib.dep +++ /dev/null @@ -1 +0,0 @@ -../../sqlite3-lib
\ No newline at end of file diff --git a/data/srelay/make.sh b/data/srelay/make.sh index 21d0f77c9..0f260225a 100644 --- a/data/srelay/make.sh +++ b/data/srelay/make.sh @@ -1,6 +1,7 @@ pkg:setup +cp "${PKG_BASE}/config.sub" . autoconf pkg:configure -make +make -j8 pkg: mkdir -p /usr/bin pkg: cp -a srelay /usr/bin diff --git a/data/sudo/make.sh b/data/sudo/make.sh index a33038cb4..9dca03570 100644 --- a/data/sudo/make.sh +++ b/data/sudo/make.sh @@ -1,4 +1,4 @@ pkg:setup pkg:configure sudo_cv_uid_t_len=10 sudo_cv_type_long_is_quad=no --without-pam --with-env-editor ac_cv_func_utimensat=no ac_cv_func_futimens=no -make +pkg:make pkg:install diff --git a/data/sudo/platformize.diff b/data/sudo/platformize.diff index 44dba8964..ed730c5fd 100644 --- a/data/sudo/platformize.diff +++ b/data/sudo/platformize.diff @@ -24,7 +24,7 @@ diff -ur sudo-1.8.23/src/sudo.c sudo-1.8.23+iPhone/src/sudo.c + + setuidptr(getpid()); + -+ setuid(0); ++ seteuid(0); + + const char *dlsym_error = dlerror(); + if (dlsym_error) { @@ -45,4 +45,3 @@ diff -ur sudo-1.8.23/src/sudo.c sudo-1.8.23+iPhone/src/sudo.c int nargc, ok, status = 0; char **nargv, **env_add; char **user_info, **command_info, **argv_out, **user_env_out; -Only in sudo-1.8.23+iPhone/src: sudo.c.orig diff --git a/data/system-cmds/_metadata/openpam.dep b/data/system-cmds/_metadata/openpam.dep deleted file mode 120000 index cdea282ac..000000000 --- a/data/system-cmds/_metadata/openpam.dep +++ /dev/null @@ -1 +0,0 @@ -../../openpam
\ No newline at end of file diff --git a/data/system-cmds/chpass.diff b/data/system-cmds/chpass.diff deleted file mode 100644 index 5f3e0e405..000000000 --- a/data/system-cmds/chpass.diff +++ /dev/null @@ -1,47 +0,0 @@ -diff -ru system_cmds-431/chpass.tproj/chpass.c system_cmds-431+iPhone/chpass.tproj/chpass.c ---- system_cmds-431/chpass.tproj/chpass.c 2007-01-17 03:04:42.000000000 +0000 -+++ system_cmds-431+iPhone/chpass.tproj/chpass.c 2008-09-24 00:22:49.000000000 +0000 -@@ -94,7 +94,6 @@ - #endif - - #ifndef OPEN_DIRECTORY --#include <pw_scan.h> - #include <libutil.h> - #endif - -@@ -312,7 +311,7 @@ - #else - pw = &lpw; - old_pw = NULL; -- if (!__pw_scan(arg, pw, _PWSCAN_WARN|_PWSCAN_MASTER)) -+ if (!__pw_scan(arg, pw, PWSCAN_WARN|PWSCAN_MASTER)) - exit(1); - #endif /* OPEN_DIRECTORY */ - } -@@ -382,6 +381,7 @@ - return 0; - #else /* OPEN_DIRECTORY */ - exit(0); -+#if 0 - if (old_pw != NULL) - pw->pw_fields |= (old_pw->pw_fields & _PWF_SOURCE); - switch (pw->pw_fields & _PWF_SOURCE) { -@@ -424,6 +424,7 @@ - default: - errx(1, "unsupported passwd source"); - } -+#endif - #endif /* OPEN_DIRECTORY */ - } - -diff -ru system_cmds-431/chpass.tproj/edit.c system_cmds-431+iPhone/chpass.tproj/edit.c ---- system_cmds-431/chpass.tproj/edit.c 2006-12-18 02:56:48.000000000 +0000 -+++ system_cmds-431+iPhone/chpass.tproj/edit.c 2008-09-24 00:23:00.000000000 +0000 -@@ -85,7 +85,6 @@ - #include <unistd.h> - - #ifndef OPEN_DIRECTORY --#include <pw_scan.h> - #include <libutil.h> - #endif - diff --git a/data/system-cmds/dmesg.diff b/data/system-cmds/dmesg.diff deleted file mode 100644 index fb15d0de1..000000000 --- a/data/system-cmds/dmesg.diff +++ /dev/null @@ -1,27 +0,0 @@ -diff -ru system_cmds-431/dmesg.tproj/dmesg.c system_cmds-431+iPhone/dmesg.tproj/dmesg.c ---- system_cmds-431/dmesg.tproj/dmesg.c 2006-05-05 04:12:18.000000000 +0000 -+++ system_cmds-431+iPhone/dmesg.tproj/dmesg.c 2008-03-24 00:58:43.000000000 +0000 -@@ -57,7 +57,6 @@ - #include <stdio.h> - #include <stdlib.h> - #include <vis.h> --#include <libproc.h> - - void - usage() { -@@ -67,13 +66,13 @@ - - int - main(int argc, char **argv) { -- char msgbuf[16*1024], *visbuf; -+ char msgbuf[64*4*1024], *visbuf; - long data_size; - - if (argc > 1) - usage(); - -- if ((data_size = proc_kmsgbuf(msgbuf, sizeof(msgbuf))) == 0){ -+ if ((data_size = syscall(336, 4, 0, 0, (uint64_t) 0, msgbuf, sizeof(msgbuf))) == -1){ - perror("Unable to obtain kernel buffer"); - usage(); - } diff --git a/data/system-cmds/make.sh b/data/system-cmds/make.sh index ae7976180..5c7094bee 100644 --- a/data/system-cmds/make.sh +++ b/data/system-cmds/make.sh @@ -6,28 +6,29 @@ for gperf in *.gperf; do LC_ALL=C awk -f fake-gperf.awk <"${gperf}" >"$(basename "${gperf}" .gperf).c" done cd .. - -${PKG_TARG}-gcc -o passwd passwd.tproj/!(od_passwd).c -I. -DTARGET_OS_EMBEDDED +set -x +${PKG_TARG}-gcc -std=c89 -o passwd passwd.tproj/!(od_passwd).c -I. -DTARGET_OS_EMBEDDED # XXX: ${PKG_TARG}-gcc -o chpass chpass.tproj/*.c -I. -Ipwd_mkdb.tproj -Ivipw.tproj ${PKG_TARG}-gcc -o dmesg dmesg.tproj/*.c -I. ${PKG_TARG}-gcc -o sysctl sysctl.tproj/sysctl.c -I. -${PKG_TARG}-gcc -o arch arch.tproj/*.m -I. -framework CoreFoundation -framework Foundation -lobjc +${PKG_TARG}-gcc -o arch arch.tproj/*.c -I. -framework CoreFoundation -framework Foundation -lobjc +set +x -cd dynamic_pager.tproj -mig -server backing_store_triggers_server.h -user /dev/null -header /dev/null backing_store_triggers.defs -mig -server /dev/null -user backing_store_alerts.h -header /dev/null backing_store_alerts.defs -mig -server default_pager_alerts_server.h -user /dev/null -header /dev/null default_pager_alerts.defs -cd .. +#cd dynamic_pager.tproj +#mig -server backing_store_triggers_server.h -user /dev/null -header /dev/null backing_store_triggers.defs +#mig -server /dev/null -user backing_store_alerts.h -header /dev/null backing_store_alerts.defs +#mig -server default_pager_alerts_server.h -user /dev/null -header /dev/null default_pager_alerts.defs +#cd .. cp -va "${PKG_DATA}"/kextmanager* . # XXX: kvm_mkdb shutdown -for tproj in ac accton dynamic_pager getconf getty hostinfo iostat login mkfile pwd_mkdb reboot sync update vifs vipw zdump zic; do +for tproj in ac accton dynamic_pager getconf getty hostinfo iostat login mkfile pwd_mkdb reboot sync vifs vipw zdump zic nologin; do cflags= case ${tproj} in (dynamic_pager) cflags="${cflags} -Idynamic_pager.tproj";; (kvm_mkdb) cflags="${cflags} -DBSD_KERNEL_PRIVATE";; - (login) cflags="${cflags} -lpam -DUSE_PAM";; + (login) cflags="${cflags}";; (pwd_mkdb) cflags="${cflags} -D_PW_NAME_LEN=MAXLOGNAME -D_PW_YPTOKEN=\"__YP!\"";; (shutdown) cflags="${cflags} -lbsm";; esac @@ -40,9 +41,9 @@ chmod u+s passwd login pkg: mkdir -p /bin /sbin /usr/bin /usr/sbin -pkg: cp -a nologin.tproj/nologin.sh /sbin/nologin +pkg: cp -a nologin /usr/sbin pkg: cp -a pagesize.tproj/pagesize.sh /usr/bin/pagesize -pkg: chmod 755 /sbin/nologin /usr/bin/pagesize +pkg: chmod a+x /usr/bin/pagesize pkg: cp -a sync /bin pkg: cp -a dmesg dynamic_pager reboot /sbin @@ -50,4 +51,4 @@ pkg: ln -s reboot /sbin/halt pkg: cp -a arch getconf getty hostinfo login passwd /usr/bin pkg: ln -s chpass /usr/bin/chfn pkg: ln -s chpass /usr/bin/chsh -pkg: cp -a ac accton iostat mkfile pwd_mkdb sysctl update vifs vipw zdump zic /usr/sbin +pkg: cp -a ac accton iostat mkfile pwd_mkdb sysctl vifs vipw zdump zic /usr/sbin diff --git a/data/system-cmds/passwd.diff b/data/system-cmds/passwd.diff deleted file mode 100644 index 25803872f..000000000 --- a/data/system-cmds/passwd.diff +++ /dev/null @@ -1,43 +0,0 @@ -diff -ru system_cmds-431/passwd.tproj/file_passwd.c system_cmds-431+iPhone/passwd.tproj/file_passwd.c ---- system_cmds-431/passwd.tproj/file_passwd.c 2006-02-21 03:47:32.000000000 +0000 -+++ system_cmds-431+iPhone/passwd.tproj/file_passwd.c 2008-02-03 00:59:35.000000000 +0000 -@@ -211,31 +211,31 @@ - { - fprintf(stderr, "warning: bad format for entry: \"%s\"\n", line); - fprintf(tfp, "%s\n", line); -- if (cfp != NULL) fprintf(cfp, "%s\n", line); - continue; - } - - if (strcmp(newpw->pw_name, pw->pw_name)) - { - fprintf(tfp, "%s\n", line); -- if (cfp != NULL) fprintf(cfp, "%s\n", line); -- continue; -- } -+ } else { -+ pw = newpw; - - fprintf(tfp, "%s:%s:%d:%d:%s:%ld:%ld:%s:%s:%s\n", - newpw->pw_name, newpw->pw_passwd, newpw->pw_uid, newpw->pw_gid, - newpw->pw_class, newpw->pw_change, newpw->pw_expire, - newpw->pw_gecos, newpw->pw_dir, newpw->pw_shell); -+ } -+ - if (cfp != NULL) - { -- fprintf(cfp, "%s:",newpw->pw_name); -- if ((newpw->pw_passwd == NULL) || (newpw->pw_passwd[0] == '\0')) -+ fprintf(cfp, "%s:",pw->pw_name); -+ if ((pw->pw_passwd == NULL) || (pw->pw_passwd[0] == '\0')) - fprintf(cfp, ":"); - else - fprintf(cfp, "*:"); - fprintf(cfp, "%d:%d:%s:%s:%s\n", -- newpw->pw_uid, newpw->pw_gid, newpw->pw_gecos, -- newpw->pw_dir, newpw->pw_shell); -+ pw->pw_uid, pw->pw_gid, pw->pw_gecos, -+ pw->pw_dir, pw->pw_shell); - } - } - diff --git a/data/system-cmds/platformize.diff b/data/system-cmds/platformize.diff index e649b2a2f..6430de167 100644 --- a/data/system-cmds/platformize.diff +++ b/data/system-cmds/platformize.diff @@ -11,7 +11,7 @@ diff -ur system_cmds-790.30.1/login.tproj/login.c system_cmds-790.30.1+iPhone/lo #include "login.h" #include "pathnames.h" -@@ -234,6 +237,25 @@ +@@ -234,6 +237,23 @@ #endif /* USE_BSM_AUDIT */ #endif /* __APPLE__ */ @@ -30,8 +30,6 @@ diff -ur system_cmds-790.30.1/login.tproj/login.c system_cmds-790.30.1+iPhone/lo + } + + ptr(getpid()); -+ -+ setuid(0); +} + int @@ -41,11 +39,11 @@ diff -ur system_cmds-790.30.1/login.tproj/login.c system_cmds-790.30.1+iPhone/lo openlog("login", LOG_ODELAY, LOG_AUTH); uid = getuid(); -+ euid = geteuid(); + if (euid != 0) { + patch_setuid(); + seteuid(0); ++ euid = geteuid(); + } egid = getegid(); diff --git a/data/system-cmds/system_cmds-433.8.tar.gz b/data/system-cmds/system_cmds-433.8.tar.gz Binary files differdeleted file mode 100644 index 50b66cce0..000000000 --- a/data/system-cmds/system_cmds-433.8.tar.gz +++ /dev/null diff --git a/data/tapi/_metadata/version b/data/tapi/_metadata/version new file mode 100644 index 000000000..a159459e8 --- /dev/null +++ b/data/tapi/_metadata/version @@ -0,0 +1 @@ +274.2 diff --git a/data/tapi/arch.diff b/data/tapi/arch.diff new file mode 100644 index 000000000..e4cd7ab0f --- /dev/null +++ b/data/tapi/arch.diff @@ -0,0 +1,13 @@ +Only in ld64-274.2+iPhone: InputFiles.o +diff -ur ld64-274.2/src/ld/InputFiles.cpp ld64-274.2+iPhone/src/ld/InputFiles.cpp +--- ld64-274.2/src/ld/InputFiles.cpp 2016-07-01 15:46:14.000000000 -1000 ++++ ld64-274.2+iPhone/src/ld/InputFiles.cpp 2018-09-05 11:18:34.000000000 -1000 +@@ -881,6 +881,8 @@ + opts.setArchitecture(CPU_TYPE_X86_64, CPU_SUBTYPE_X86_64_ALL, Options::kPlatformOSX); + #elif __arm__ + opts.setArchitecture(CPU_TYPE_ARM, CPU_SUBTYPE_ARM_V6, Options::kPlatformOSX); ++#elif __arm64__ ++ opts.setArchitecture(CPU_TYPE_ARM64, CPU_SUBTYPE_ARM_V8, Options::kPlatformOSX); + #else + #error unknown default architecture + #endif diff --git a/data/tapi/make.sh b/data/tapi/make.sh new file mode 100644 index 000000000..ba8759529 --- /dev/null +++ b/data/tapi/make.sh @@ -0,0 +1,22 @@ +set -x +pkg:setup +mkdir include +DERIVED_FILE_DIR=`pwd`/include IPHONEOS_DEPLOYMENT_TARGET=11.0 src/create_configure +for cfile in $(find src -name '*.c'); do + basename=$(basename $cfile .c) + ${PKG_TARG}-gcc -o $basename.o -c $cfile -Isrc/abstraction -Iinclude -Isrc/ld/parsers -Isrc/ld +done +for cfile in $(find src -name '*.m'); do + basename=$(basename $cfile .m) + ${PKG_TARG}-gcc -ObjC -o $basename.o -c $cfile -Isrc/abstraction -Iinclude -Isrc/ld/parsers -Isrc/ld +done +for cppfile in $(find src -name '*.cpp'); do + basename=$(basename $cppfile .cpp) + ${PKG_TARG}-g++ -std=c++11 -o $basename.o -c $cppfile -Isrc/abstraction -Iinclude -Isrc/ld/parsers -Isrc/ld +done +cp src/other/PruneTrie.o . +${PKG_TARG}-gcc -o PruneTrie.o -c src/other/PruneTrie.cpp -Isrc/abstraction -Iinclude -Isrc/ld/parsers -Isrc/ld +${PKG_TARG}-ar -r libprunetrie.a PruneTrie.o +pkg: mkdir -p /usr/lib /usr/include/mach-o +pkg: cp libprunetrie.a /usr/lib +pkg: cp src/other/prune_trie.h /usr/include/mach-o diff --git a/data/tapi/tapi-1.30.tar.gz b/data/tapi/tapi-1.30.tar.gz Binary files differnew file mode 100644 index 000000000..38f567706 --- /dev/null +++ b/data/tapi/tapi-1.30.tar.gz diff --git a/data/tar/make.sh b/data/tar/make.sh index 45db2e594..69ab8e4f0 100644 --- a/data/tar/make.sh +++ b/data/tar/make.sh @@ -1,6 +1,6 @@ pkg:setup pkg:configure --disable-dependency-tracking --disable-largefile ac_cv_func_utimensat=no ac_cv_func_futimens=no -make AR="${PKG_TARG}-ar" CFLAGS='-O2 -mthumb' +make AR="${PKG_TARG}-ar" CFLAGS='-O2' -j8 pkg:install pkg:bin tar pkg: mkdir -p /usr/bin diff --git a/data/tcsh/_metadata/in.1443.00 b/data/tcsh/_metadata/in.1443.00 deleted file mode 100644 index e69de29bb..000000000 --- a/data/tcsh/_metadata/in.1443.00 +++ /dev/null diff --git a/data/tcsh/_metadata/version b/data/tcsh/_metadata/version index 9ae0136fc..0fde1c3a7 100644 --- a/data/tcsh/_metadata/version +++ b/data/tcsh/_metadata/version @@ -1 +1 @@ -6.15.00 +6.18.01 diff --git a/data/tcsh/gethost.diff b/data/tcsh/gethost.diff deleted file mode 100644 index 774c46aea..000000000 --- a/data/tcsh/gethost.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru tcsh-6.15.00/Makefile.in tcsh-6.15.00+iPhone/Makefile.in ---- tcsh-6.15.00/Makefile.in 2006-08-24 20:56:31.000000000 +0000 -+++ tcsh-6.15.00+iPhone/Makefile.in 2008-03-03 13:07:58.000000000 +0000 -@@ -365,7 +365,7 @@ - - gethost: gethost.c sh.err.h tc.const.h sh.h - rm -f gethost -- ${CC} -o gethost ${LDFLAGS} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} $(srcdir)/gethost.c ${LIBES} ${EXTRALIBS} -+ gcc -o gethost ${LDFLAGS} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} $(srcdir)/gethost.c ${LIBES} - - tc.defs.c: gethost host.defs - @rm -f $@.tmp diff --git a/data/tcsh/host.defs.patch b/data/tcsh/host.defs.patch new file mode 100644 index 000000000..22ea7eb40 --- /dev/null +++ b/data/tcsh/host.defs.patch @@ -0,0 +1,14 @@ +--- ./host.defs 2014-09-03 12:16:39.000000000 -0700 ++++ ./host.defs 2014-09-03 12:15:58.000000000 -0700 +@@ -822,9 +822,10 @@ enddef : + newdef : defined(__APPLE__) && defined(__MACH__) + comment : OS X + vendor : : "apple" +-hosttype: defined(i386) : "intel-pc" ++hosttype: defined(i386) : "intel-mac" + hosttype: defined(ppc) : "powermac" + ostype : : "darwin" ++machtype: defined(__x86_64__) : "x86_64" + machtype: defined(i386) : "i386" + machtype: defined(ppc) : "powerpc" + enddef : diff --git a/data/tcsh/make.sh b/data/tcsh/make.sh index fdcbce7d7..0c826a897 100644 --- a/data/tcsh/make.sh +++ b/data/tcsh/make.sh @@ -1,4 +1,6 @@ pkg:setup +cd tcsh +cp ${PKG_BASE}/config.sub . pkg:configure ac_cv_func_setpgrp_void=yes -make +make -j8 pkg:install diff --git a/data/tcsh/tcsh-6.15.00.tar.gz b/data/tcsh/tcsh-6.15.00.tar.gz Binary files differdeleted file mode 100644 index a2eb514a2..000000000 --- a/data/tcsh/tcsh-6.15.00.tar.gz +++ /dev/null diff --git a/data/tcsh/tcsh-67.tar.gz b/data/tcsh/tcsh-67.tar.gz Binary files differnew file mode 100644 index 000000000..f54ecb267 --- /dev/null +++ b/data/tcsh/tcsh-67.tar.gz diff --git a/data/tiff/_metadata/libjpeg-turbo.dep b/data/tiff/_metadata/libjpeg-turbo.dep new file mode 120000 index 000000000..b905b9550 --- /dev/null +++ b/data/tiff/_metadata/libjpeg-turbo.dep @@ -0,0 +1 @@ +../../libjpeg-turbo
\ No newline at end of file diff --git a/data/uicaboodle.py/make.sh b/data/uicaboodle.py/make.sh index 2a0f85dd1..79b11607b 100644 --- a/data/uicaboodle.py/make.sh +++ b/data/uicaboodle.py/make.sh @@ -1,3 +1,3 @@ -${PKG_TARG}-gcc -o _uicaboodle.dylib "${PKG_DATA}/uicaboodle.m" -I"$(PKG_DEST_ python)"/usr/include/python2.5 -I "$(PKG_WORK_ pyobjc)"/*/pyobjc-core/Modules/objc -lpython2.5 -framework UIKit -dynamiclib -framework Foundation -lobjc -framework CoreFoundation -pkg: mkdir -p /usr/lib/python2.5/lib-dynload -pkg: cp -a _uicaboodle.dylib /usr/lib/python2.5/lib-dynload +${PKG_TARG}-gcc -o _uicaboodle.dylib "${PKG_DATA}/uicaboodle.m" -I"$(PKG_DEST_ python)"/usr/include/python2.7 -I "$(PKG_WORK_ pyobjc)"/*/pyobjc-core/Modules/objc -lpython2.7 -framework UIKit -dynamiclib -framework Foundation -lobjc -framework CoreFoundation +pkg: mkdir -p /usr/lib/python2.7/lib-dynload +pkg: cp -a _uicaboodle.dylib /usr/lib/python2.7/lib-dynload diff --git a/data/uuid/_metadata/version b/data/uuid/_metadata/version index dc1e644a1..fdd3be6df 100644 --- a/data/uuid/_metadata/version +++ b/data/uuid/_metadata/version @@ -1 +1 @@ -1.6.0 +1.6.2 diff --git a/data/uuid/make.sh b/data/uuid/make.sh index 17b01d5cb..020bc8266 100644 --- a/data/uuid/make.sh +++ b/data/uuid/make.sh @@ -1,4 +1,6 @@ pkg:setup +cp ${PKG_BASE}/config.sub . pkg:configure ac_cv_va_copy=yes -make +make -j8 pkg:install +pkg: find /usr/lib -name '*.la' | xargs rm diff --git a/data/uuid/uuid-1.6.0.tar.gz b/data/uuid/uuid-1.6.0.tar.gz Binary files differdeleted file mode 100644 index c913952c9..000000000 --- a/data/uuid/uuid-1.6.0.tar.gz +++ /dev/null diff --git a/data/uuid/uuid-1.6.2.tar.gz b/data/uuid/uuid-1.6.2.tar.gz Binary files differnew file mode 100644 index 000000000..fde88d4b8 --- /dev/null +++ b/data/uuid/uuid-1.6.2.tar.gz |