1. 13 May, 2018 1 commit
    • Bruno Haible's avatar
      Add cross-compilation guesses for Linux systems without glibc. · c0155cf0
      Bruno Haible authored
      * m4/chown.m4 (AC_FUNC_CHOWN): Add cross-compilation guess for Linux.
      * m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise.
      * m4/link.m4 (gl_FUNC_LINK): Likewise.
      * m4/linkat.m4 (gl_FUNC_LINKAT): Likewise.
      * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Likewise.
      * m4/mkdir.m4 (gl_FUNC_MKDIR): Likewise.
      * m4/mkfifo.m4 (gl_FUNC_MKFIFO): Likewise.
      * m4/mknod.m4 (gl_FUNC_MKNOD): Likewise.
      * m4/pselect.m4 (gl_FUNC_PSELECT): Likewise.
      * m4/readlink.m4 (gl_FUNC_READLINK): Likewise.
      * m4/rename.m4 (gl_FUNC_RENAME): Likewise.
      * m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise.
      * m4/select.m4 (gl_FUNC_SELECT): Likewise.
      * m4/stat.m4 (gl_FUNC_STAT): Likewise.
      * m4/symlink.m4 (gl_FUNC_SYMLINK): Likewise.
      * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Likewise.
      * m4/unlink.m4 (gl_FUNC_UNLINK): Likewise.
      * m4/utimens.m4 (gl_UTIMENS): Likewise.
      c0155cf0
  2. 01 Jan, 2018 1 commit
  3. 29 Dec, 2017 1 commit
    • Samuel Thibault's avatar
      Add cross-compilation results for GNU/Hurd. · 65c09137
      Samuel Thibault authored
      * m4/calloc.m4: Add GNU/Hurd guess.
      * m4/cbrtl.m4: Likewise.
      * m4/ceil.m4: Likewise.
      * m4/ceilf.m4: Likewise.
      * m4/ceill.m4: Likewise.
      * m4/chown.m4: Likewise.
      * m4/duplocale.m4: Likewise.
      * m4/exp2l.m4: Likewise.
      * m4/expm1.m4: Likewise.
      * m4/fchdir.m4: Likewise.
      * m4/floor.m4: Likewise.
      * m4/floorf.m4: Likewise.
      * m4/fmod.m4: Likewise.
      * m4/fmodf.m4: Likewise.
      * m4/fmodl.m4: Likewise.
      * m4/getcwd.m4: Likewise.
      * m4/getgroups.m4: Likewise.
      * m4/gettimeofday.m4: Likewise.
      * m4/hypot.m4: Likewise.
      * m4/hypotf.m4: Likewise.
      * m4/hypotl.m4: Likewise.
      * m4/link-follow.m4: Likewise.
      * m4/link.m4: Likewise.
      * m4/linkat.m4: Likewise.
      * m4/log.m4: Likewise.
      * m4/log10.m4: Likewise.
      * m4/log10f.m4: Likewise.
      * m4/log1p.m4: Likewise.
      * m4/log1pf.m4: Likewise.
      * m4/log1pl.m4: Likewise.
      * m4/log2.m4: Likewise.
      * m4/log2f.m4: Likewise.
      * m4/logf.m4: Likewise.
      * m4/lstat.m4: Likewise.
      * m4/malloc.m4: Likewise.
      * m4/mbrlen.m4: Likewise.
      * m4/mbrtowc.m4: Likewise.
      * m4/mkdir.m4: Likewise.
      * m4/mkfifo.m4: Likewise.
      * m4/mknod.m4: Likewise.
      * m4/mkstemp.m4: Likewise.
      * m4/modf.m4: Likewise.
      * m4/modff.m4: Likewise.
      * m4/modfl.m4: Likewise.
      * m4/printf.m4: Likewise.
      * m4/pselect.m4: Likewise.
      * m4/ptsname.m4: Likewise.
      * m4/putenv.m4: Likewise.
      * m4/readlink.m4: Likewise.
      * m4/realloc.m4: Likewise.
      * m4/remainder.m4: Likewise.
      * m4/remainderf.m4: Likewise.
      * m4/remainderl.m4: Likewise.
      * m4/rmdir.m4: Likewise.
      * m4/round.m4: Likewise.
      * m4/roundf.m4: Likewise.
      * m4/roundl.m4: Likewise.
      * m4/select.m4: Likewise.
      * m4/setenv.m4: Likewise.
      * m4/signbit.m4: Likewise.
      * m4/sleep.m4: Likewise.
      * m4/stat.m4: Likewise.
      * m4/strerror.m4: Likewise.
      * m4/strtok_r.m4: Likewise.
      * m4/symlink.m4: Likewise.
      * m4/symlinkat.m4: Likewise.
      * m4/trunc.m4: Likewise.
      * m4/truncf.m4: Likewise.
      * m4/truncl.m4: Likewise.
      * m4/tzset.m4: Likewise.
      * m4/ungetc.m4: Likewise.
      * m4/usleep.m4: Likewise.
      * m4/wcwidth.m4: Likewise.
      65c09137
  4. 01 Jan, 2017 1 commit
    • Paul Eggert's avatar
      version-etc: new year · a3fd683d
      Paul Eggert authored
      * build-aux/gendocs.sh (version):
      * doc/gendocs_template:
      * doc/gendocs_template_min:
      * doc/gnulib.texi:
      * lib/version-etc.c (COPYRIGHT_YEAR):
      Update copyright dates by hand in templates and the like.
      * all files: Run 'make update-copyright'.
      a3fd683d
  5. 01 Jan, 2016 1 commit
    • Paul Eggert's avatar
      version-etc: new year · 71090a2a
      Paul Eggert authored
      * build-aux/gendocs.sh (version):
      * doc/gendocs_template:
      * doc/gendocs_template_min:
      * doc/gnulib.texi:
      * lib/version-etc.c (COPYRIGHT_YEAR):
      Update copyright dates by hand in templates and the like.
      * all files: Run 'make update-copyright'.
      71090a2a
  6. 29 Jun, 2015 1 commit
    • Jim Meyering's avatar
      linkat: fix invalid definition of LINKAT_SYMLINK_NOTSUP on OS X · 1f90ddd3
      Jim Meyering authored
      It started like this when building coreutils' latest on OS X,
      invoking ./configure with a nonempty --cache=.cache:
      
        lib/linkat.c:46:42: error: operator '||' has no right operand
        lib/linkat.c: In function 'rpl_linkat':
        lib/linkat.c:330:27: error: #if with no expression
      
      Here's linkat.c's line 46:
      
        #if !HAVE_LINKAT || LINKAT_SYMLINK_NOTSUP
      
      Here's some context:
      
        $ grep linkat_nofoll .cache
        gl_cv_func_linkat_nofollow=${gl_cv_func_linkat_nofollow=no}
        $ grep LINKAT_SYM lib/config.h
        #define LINKAT_SYMLINK_NOTSUP
      
      The problem is that m4/linkat.m4's gl_FUNC_LINKAT
      uses AC_CACHE_CHECK to set LINKAT_SYMLINK_NOTSUP,
      but that violates a tenet of AC_CACHE_CHECK: it must
      have no side effect other than setting its cache variable.
      
      What happens is that when the cache is set, we'd skip the
      code in that AC_CACHE_CHECK call, and leave LINKAT_SYMLINK_NOTSUP
      defined to whatever value it happened to have in configure's
      environment.  In my case, it was not defined, so this later code:
      
        AC_DEFINE_UNQUOTED([LINKAT_SYMLINK_NOTSUP], [$LINKAT_SYMLINK_NOTSUP],
          [Define to 1 if linkat can create hardlinks to symlinks])
      
      would emit code with an empty RHS.
      
      * m4/linkat.m4 (gl_FUNC_LINKAT): Move the setting of
      $LINKAT_SYMLINK_NOTSUP out of the AC_CACHE_CHECK code block.
      1f90ddd3
  7. 29 May, 2015 1 commit
    • Pádraig Brady's avatar
      linkat: avoid OS X 10.10 trailing slash with symlink bug · c79f3527
      Pádraig Brady authored
      On Darwin 14.3.0 linkat(,"path1",,"dangling_symlink/",)
      causes the symlink to be dereferenced, and if it points
      to a non existent file, that file will be created as
      a hard link to "path1".
      This fixes a test failure in test-linkat.c.
      
      * m4/linkat.m4 (gl_FUNC_LINKAT): Augment the test with
      this case.  The existing workaround in linkat.c for
      trailing slash issues, suffices for this case.
      * doc/posix-functions/linkat.texi: Add OS X 10.10 to
      the list of platforms with trailing slash issues.
      c79f3527
  8. 11 Feb, 2015 1 commit
  9. 01 Jan, 2015 1 commit
    • Paul Eggert's avatar
      version-etc: new year · b9bfe784
      Paul Eggert authored
      * doc/gnulib.texi:
      * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date.
      * all files: Run 'make update-copyright'.
      b9bfe784
  10. 03 Nov, 2014 2 commits
    • Pádraig Brady's avatar
      linkat: don't unconditionally replace on GNU/Linux · c564172a
      Pádraig Brady authored
      * m4/linkat.m4 (gl_FUNC_LINKAT): The compile check for AT_SYMLINK_FOLLOW
      was redundant for a few reasons.  It was present to support compiling
      on new systems but running on the old narrow window of Linux 2.6.1[67].
      It setup and cleaned up test files which weren't actually used.
      On non __linux__ it compile tested AT_SYMLINK_FOLLOW, but that is
      implicit in the following check.
      c564172a
    • Pádraig Brady's avatar
      linkat: wrap to handle symlinks on OS X 10.10 · c8e57ce5
      Pádraig Brady authored
      * m4/linkat.m4 (gl_FUNC_LINKAT): linkat() is available on Yosemite
      but not usable because it doesn't support creating hardlinks
      to symlinks.  Therefore add a generic test for this capability
      and fallback to our emulation if linkat() fails with ENOTSUP.
      c8e57ce5
  11. 01 Jan, 2014 1 commit
  12. 01 Jan, 2013 1 commit
  13. 01 Jan, 2012 1 commit
  14. 15 Jun, 2011 1 commit
  15. 23 May, 2011 1 commit
  16. 01 Jan, 2011 1 commit
  17. 06 Dec, 2010 1 commit
    • Bruno Haible's avatar
      Put more information about failed tests into the test return codes. · 1f8c872f
      Bruno Haible authored
      * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Change test
      program so that it returns an enumerated value (0, 1, 2, 3, 4, ...).
      * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise.
      * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise.
      * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise.
      * m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise.
      * m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
      * m4/intdiv0.m4 (gt_INTDIV0): Likewise.
      * m4/isapipe.m4 (gl_PREREQ_ISAPIPE): Likewise.
      * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
      * m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Likewise.
      * m4/putenv.m4 (gl_FUNC_PUTENV): Likewise.
      * m4/sleep.m4 (gl_FUNC_SLEEP): Likewise.
      * m4/stdint.m4 (gl_STDINT_H): Likewise.
      * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Change test program so that it
      returns a bit mask.
      * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Likewise.
      * m4/chown.m4 (gl_FUNC_CHOWN_FOLLOWS_SYMLINK): Likewise.
      * m4/dup2.m4 (gl_FUNC_DUP2): Likewise.
      * m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Likewise.
      * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise.
      * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Likewise.
      * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Likewise.
      * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Likewise.
      * m4/iconv.m4 (AM_ICONV_LINK): Likewise.
      * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN_UTF): Likewise.
      * m4/isfinite.m4 (gl_ISFINITEL_WORKS): Likewise.
      * m4/isnanf.m4 (gl_ISNANF_WORKS): Likewise.
      * m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Likewise.
      * m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): Likewise.
      * m4/link.m4 (gl_FUNC_LINK): Likewise.
      * m4/linkat.m4 (gl_FUNC_LINKAT): Likewise.
      * m4/mbrlen.m4 (gl_MBRLEN_RETVAL): Likewise.
      * m4/mbrtowc.m4 (gl_MBRTOWC_RETVAL): Likewise.
      * m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise.
      * m4/memchr.m4 (gl_FUNC_MEMCHR): Likewise.
      * m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise.
      * m4/mkfifo.m4 (gl_FUNC_MKFIFO): Likewise.
      * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise.
      * m4/mktime.m4 (AC_FUNC_MKTIME): Likewise.
      * m4/open.m4 (gl_FUNC_OPEN): Likewise.
      * m4/poll.m4 (gl_FUNC_POLL): Likewise.
      * m4/popen.m4 (gl_FUNC_POPEN): Likewise.
      * m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_LONG_DOUBLE,
      gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE,
      gl_PRINTF_DIRECTIVE_A, gl_PRINTF_DIRECTIVE_F, gl_PRINTF_DIRECTIVE_LS,
      gl_PRINTF_PRECISION): Likewise.
      * m4/regex.m4 (gl_REGEX): Likewise.
      * m4/rename.m4 (gl_FUNC_RENAME): Likewise.
      * m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise.
      * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Likewise.
      * m4/stat.m4 (gl_FUNC_STAT): Likewise.
      * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise.
      * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise.
      * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Likewise.
      * m4/strsignal.m4 (gl_FUNC_STRSIGNAL): Likewise.
      * m4/strstr.m4 (gl_FUNC_STRSTR): Likewise.
      * m4/strtod.m4 (gl_FUNC_STRTOD): Likewise.
      * m4/symlink.m4 (gl_FUNC_SYMLINK): Likewise.
      * m4/tsearch.m4 (gl_FUNC_TSEARCH): Likewise.
      * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Likewise.
      * m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise.
      * m4/unlink.m4 (gl_FUNC_UNLINK): Likewise.
      * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise.
      * m4/utimes.m4 (gl_FUNC_UTIMES): Likewise.
      * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
      * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise.
      * m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): Likewise.
      (gl_FLOATTYPE_SIGN_LOCATION): Change test program so that it returns an
      enumerated value.
      * m4/acl.m4 (gl_ACL_GET_FILE): Use "if ... return 1; return 0;" style.
      1f8c872f
  18. 31 Jul, 2010 1 commit
  19. 01 Jan, 2010 1 commit
  20. 06 Oct, 2009 1 commit
    • Eric Blake's avatar
      linkat: support Linux 2.6.17 · cdba659e
      Eric Blake authored
      * m4/linkat.m4 (gl_FUNC_LINKAT): Default to always replacing
      linkat on Linux, but allow cache variable override.
      * lib/linkat.c (rpl_linkat): Define override.
      * modules/linkat (Depends-on): Add symlinkat.
      * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add new default.
      * modules/unistd (Makefile.am): Substitute it.
      * lib/unistd.in.h (linkat): Declare replacement.
      Reported by Pádraig Brady.
      Signed-off-by: 's avatarEric Blake <ebb9@byu.net>
      cdba659e
  21. 24 Sep, 2009 1 commit
    • Eric Blake's avatar
      linkat: new module · c4194dcc
      Eric Blake authored
      * modules/linkat: New file.
      * lib/at-func2.c (at_func2): Likewise.
      * lib/linkat.c (linkat): Likewise.
      * m4/linkat.m4 (gl_FUNC_LINKAT): Likewise.
      * lib/openat-priv.h (at_func2): Add declaration.
      * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witnesses.
      * modules/unistd (Makefile.am): Substitute them.
      * lib/unistd.in.h (linkat): Declare it.
      * MODULES.html.sh (systems lacking POSIX:2008): Mention module.
      * doc/posix-functions/linkat.texi (linkat): Likewise.
      * doc/posix-functions/link.texi (link): Tweak wording.
      * tests/test-link.c (main): Move guts...
      * tests/test-link.h (test_link): ...into new file.
      * modules/linkat-tests: New test.
      * tests/test-linkat.c: Likewise.
      * modules/link-tests (Files): Ship new file.
      (Depends-on): Add stdbool.
      Signed-off-by: 's avatarEric Blake <ebb9@byu.net>
      c4194dcc
  22. 23 Sep, 2009 1 commit
    • Eric Blake's avatar
      symlink: use throughout gnulib · 7eba2f98
      Eric Blake authored
      * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Omit symlink check.
      * lib/symlinkat.c (symlinkat) [!HAVE_SYMLINK]: Document why
      symlink is not used.
      * modules/symlinkat (Depends-on): Add symlink.
      * modules/canonicalize-lgpl-tests (Depends-on): Likewise.
      * modules/canonicalize-tests (Depends-on): Likewise.
      * modules/lstat-tests (Depends-on): Likewise.
      * modules/openat-tests (Depends-on): Likewise.
      * modules/remove-tests (Depends-on): Likewise.
      * modules/rmdir-tests (Depends-on): Likewise.
      * modules/unlink-tests (Depends-on): Likewise.
      * tests/test-canonicalize-lgpl.c (symlink): Delete stub.
      * tests/test-canonicalize.c (symlink): Likewise.
      * tests/test-fstatat.c (symlink): Likewise.
      * tests/test-lstat.c (symlink): Likewise.
      * tests/test-remove.c (symlink): Likewise.
      * tests/test-rmdir.c (symlink): Likewise.
      * tests/test-unlink.c (symlink): Likewise.
      * tests/test-unlinkat.c (symlink): Likewise.
      Signed-off-by: 's avatarEric Blake <ebb9@byu.net>
      7eba2f98
  23. 07 Sep, 2009 1 commit
    • Eric Blake's avatar
      faccessat, symlinkat: continue cleanup of previous patch · aa686284
      Eric Blake authored
      * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Ensure dependency order.
      * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Likewise.
      * modules/unistd (Makefile.am): Substitute GNULIB_READLINKAT.
      * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Offer GNULIB_READLINKAT.
      * modules/symlinkat (configure.ac): Set GNULIB_READLINKAT.
      * lib/unistd.in.h (readlinkat): Declare if GNULIB_READLINKAT is
      set.
      Signed-off-by: 's avatarEric Blake <ebb9@byu.net>
      aa686284
  24. 05 Sep, 2009 1 commit
    • Eric Blake's avatar
      symlinkat: new module · ac181274
      Eric Blake authored
      * modules/symlinkat: New file.
      * lib/symlinkat.c: Likewise.
      * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Likewise.
      * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witnesses.
      * modules/unistd (Makefile.am): Use them.
      * lib/unistd.in.h (symlinkat, readlinkat): Declare them.
      (faccessat) [GNULIB_POSIXCHECK]: Fix typo.
      * lib/at-func.c (FUNC_RESULT): New macro, defaulting to int.
      * MODULES.html.sh (File system functions): Mention module.
      * doc/posix-functions/symlinkat.texi (symlinkat): Likewise.
      * doc/posix-functions/readlinkat.texi (readlinkat): Likewise.
      * modules/symlinkat-tests: New test.
      * tests/test-symlinkat.c: Likewise.
      Signed-off-by: 's avatarEric Blake <ebb9@byu.net>
      ac181274
  25. 04 Sep, 2009 2 commits
    • Eric Blake's avatar
      faccessat: compile replacement · a9282963
      Eric Blake authored
      * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Build replacement when
      needed.
      Signed-off-by: 's avatarEric Blake <ebb9@byu.net>
      a9282963
    • Eric Blake's avatar
      faccessat: new module · 973333dc
      Eric Blake authored
      * modules/faccessat: New file.
      * lib/faccessat.m4: Likewise.
      * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Likewise.
      * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness.
      * modules/unistd (Makefile.am): Use it.
      * lib/unistd.in.h (faccessat): Declare it.
      (F_OK, X_OK, W_OK, R_OK): Provide definitions.
      * lib/fcntl.in.h (AT_SYMLINK_FOLLOW, AT_EACCESS): Likewise.
      * MODULES.html.sh (File system functions): Mention it.
      * doc/posix-functions/faccessat.texi (faccessat): Likewise.
      * doc/posix-headers/fcntl.texi (fcntl.h): Likewise.
      Signed-off-by: 's avatarEric Blake <ebb9@byu.net>
      973333dc
  26. 03 Sep, 2009 1 commit
    • Eric Blake's avatar
      fdopendir: split into its own module · d1aa3e40
      Eric Blake authored
      * lib/openat.c (fdopendir): Move...
      * lib/fdopendir.c: ...into new file.
      * modules/fdopendir: New module.
      * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): New file.
      * modules/openat (Depends-on): Add fdopendir.
      * m4/openat.m4 (gl_FUNC_OPENAT): No longer need to check for
      fdopendir here.
      * modules/savedir (Depends-on): Only need fdopendir, not full
      openat.
      * lib/savedir.c (include): Use <dirent.h>, not "openat.h".
      * lib/openat.h (fdopendir): Drop prototype.
      * lib/dirent.in.h (fdopendir): Provide prototype.
      * m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Add replacements.
      * modules/dirent (Makefile.am): Substitute them.
      * MODULES.html.sh (File system functions): Mention it.
      * doc/posix-functions/fdopendir.texi (fdopendir): Likewise.
      * modules/fdopendir-tests: New file.
      * tests/test-fdopendir.c: Likewise.
      Signed-off-by: 's avatarEric Blake <ebb9@byu.net>
      d1aa3e40
  27. 08 Jun, 2009 1 commit