src/Pure/Admin/component_rsync.scala
changeset 77756 efd5c582d7ae
parent 77755 12c8d72df48a
child 77757 49d38fa1478d
equal deleted inserted replaced
77755:12c8d72df48a 77756:efd5c582d7ae
    12 
    12 
    13   val default_version = "3.2.7"
    13   val default_version = "3.2.7"
    14   val default_download_url = "https://github.com/WayneD/rsync/archive/refs/tags"
    14   val default_download_url = "https://github.com/WayneD/rsync/archive/refs/tags"
    15   val default_build_options: List[String] =
    15   val default_build_options: List[String] =
    16     List(
    16     List(
    17       "--disable-openssl",
    17       "--disable-acl-support",
    18       "--disable-xxhash",
       
    19       "--disable-zstd",
       
    20       "--disable-lz4",
    18       "--disable-lz4",
    21       "--disable-md2man",
    19       "--disable-md2man",
    22       "--disable-acl-support",
    20       "--disable-openssl",
    23       "--disable-xattr-support")
    21       "--disable-xattr-support",
       
    22       "--disable-xxhash",
       
    23       "--disable-zstd")
    24 
    24 
    25   def build_rsync(
    25   def build_rsync(
    26     version: String = default_version,
    26     version: String = default_version,
    27     download_url: String = default_download_url,
    27     download_url: String = default_download_url,
    28     progress: Progress = new Progress,
    28     progress: Progress = new Progress,
    59 
    59 
    60       /* build */
    60       /* build */
    61 
    61 
    62       progress.echo("Building rsync for " + platform_name + " ...")
    62       progress.echo("Building rsync for " + platform_name + " ...")
    63 
    63 
    64       val build_script = "./configure " + Bash.strings(build_options) + " && make"
    64       val build_script = List("./configure " + Bash.strings(build_options.sorted), "make")
    65       Isabelle_System.bash(build_script, cwd = source_dir.file,
    65       Isabelle_System.bash(build_script.mkString(" && "), cwd = source_dir.file,
    66         progress_stdout = progress.echo(_, verbose = true),
    66         progress_stdout = progress.echo(_, verbose = true),
    67         progress_stderr = progress.echo(_, verbose = true)).check
    67         progress_stderr = progress.echo(_, verbose = true)).check
    68 
    68 
    69 
    69 
    70       /* install */
    70       /* install */
    84       /* README */
    84       /* README */
    85 
    85 
    86       File.write(component_dir.README,
    86       File.write(component_dir.README,
    87         "This is rsync " + version + " from " + download_url + """
    87         "This is rsync " + version + " from " + download_url + """
    88 
    88 
       
    89 The distribution has been built like this:
       
    90 
       
    91 """ + ("cd src" :: build_script).map(s => "  " + s + "\n").mkString + """
    89 See also:
    92 See also:
    90   * https://github.com/WayneD/rsync
    93   * https://github.com/WayneD/rsync
    91   * https://rsync.samba.org
    94   * https://rsync.samba.org
    92 
       
    93 The distribution has been built like this:
       
    94 
       
    95     cd src && """ + build_script + """
       
    96 
    95 
    97 
    96 
    98         Makarius
    97         Makarius
    99         """ + Date.Format.date(Date.now()) + "\n")
    98         """ + Date.Format.date(Date.now()) + "\n")
   100     }
    99     }