Commit Graph

57 Commits

Author SHA1 Message Date
Lasse Collin 33b8a85fac Build: Update po/*.po files only when needed
When po/xz.pot doesn't exist, running "make" or "make dist" will
create it. Then the .po files will be updated but only if they
actually would change more than the POT-Creation-Date line.
Then the .gmo files would be generated from the .po files.
This is the case before and after this commit.

However, "make dist" and thus "make mydist" did a forced update
to the files, updating them even if the only change was the
POT-Creation-Date line. This had pros and cons: It made it clear
that the .po file really is in sync with the recent strings in
the package. On the other hand, it added noise in form of changed
files in the source tree and distribution tarballs. It can be
ignored with something like "diff -I'^"POT-Creation-Date: '" but
it's still a minor annoyance *if* there's not enough value in
having the most recent timestamp.

Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced
update won't happen in "make dist" anymore. However, the "mydist"
target will use xz.pot-update target which is the same target that
is run when xz.pot doesn't exist at all yet. Thus "mydist" will
ensure that the translations are up to date, without noise from
changes that would affect only the POT-Creation-Date line.

Note that po4a always uses msgmerge with --update, so POT-Creation-Date
in the man page translations is never the only change in .po files.
In that sense this commit makes the message translations behave more
similarly to the man page translations.

Distribution tarballs will still have non-reproducible POT-Creation-Date
in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they
could be made reproducible from a Git timestamp if desired.

(cherry picked from commit 9284f1aea3)
2024-05-29 17:31:42 +03:00
Lasse Collin d438989559 Build: Use $(SHELL) instead of sh to run scripts in Makefile.am
(cherry picked from commit f361d9ae85)
2024-05-28 12:21:22 +03:00
Lasse Collin a3f163a4ad Build: Don't copy doc/api from source tree to distribution tarball
It was copied if it existed. This was intentional when autogen.sh
still built liblzma API docs with Doxygen.

Fixes: d3a77ebc04
(cherry picked from commit 8ede961374)
2024-05-23 00:13:43 +03:00
Lasse Collin 1ddb40f6fd Build: Remove old Doxygen rules from top-level Makefile.am
(cherry picked from commit d3a77ebc04)
2024-05-22 23:34:43 +03:00
Lasse Collin 77bce9a0a2 Build: Don't run update-doxygen as part of "make mydist"
(cherry picked from commit b2bc55d8a0)
2024-05-22 23:34:43 +03:00
Lasse Collin be90720d6c Build: Omit PDF man pages from the package
pdf-local rule was added to create the PDFs still with "make pdf".
The install rules are missing but that likely doesn't matter at all.

(cherry picked from commit dc684bf76e)
2024-05-22 23:34:42 +03:00
Lasse Collin 12876b33c7 Remove the XZ logo.
(cherry picked from commit bfd0c7c478)
2024-05-22 14:12:43 +03:00
Lasse Collin 9466306719 Build: Makefile.am: Sort EXTRA_DIST.
Dirs first, then files in case-sensitive ASCII order.
2024-02-17 19:42:30 +02:00
Lasse Collin f3440e78c9 Build: Don't install TODO. 2024-02-17 19:42:30 +02:00
Lasse Collin 22140a2df6 Build: Start the generated ChangeLog from around 5.4.0 instead of 5.2.0. 2024-02-14 19:38:34 +02:00
Lasse Collin 38edf47323 Build: Install COPYING.0BSD as part of docs. 2024-02-14 19:15:58 +02:00
Lasse Collin dfdb60ffe9 Docs: Include doc/examples/11_file_info.c in tarballs.
It was added in 2017 in c2e29f06a7
but it never got into any release tarballs because it was
forgotten to be added to Makefile.am.
2024-02-14 19:11:48 +02:00
Lasse Collin a9f369dd54 Translations: Add custom .pot header with SPDX license identifier.
The same is used for both po/xz.pot and po4a/xz-man.pot.
2024-02-14 18:31:16 +02:00
Lasse Collin 22af94128b Add SPDX license identifier into 0BSD source code files. 2024-02-14 18:31:16 +02:00
Lasse Collin 689e0228ba Change most public domain parts to 0BSD.
Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt
were not touched.

COPYING.0BSD was added.
2024-02-14 18:31:12 +02:00
Lasse Collin 21d9cbae9e Remove macosx/build.sh.
It was last updated in 2013.
2024-02-14 15:23:00 +02:00
Lasse Collin eac2c3c67f Doc: Remove doc/examples_old.
It was good to keep these around in parallel with the newer examples
but I think it's OK to remove the old ones at this point.
2024-02-14 15:23:00 +02:00
Lasse Collin 93de7e751d Move doc/logo/xz-logo.png to "doc" and Doxygen footer to "doxygen".
The footer isn't a complete HTML file so having it in the doxygen
directory is a tiny bit clearer.
2024-01-24 20:00:57 +02:00
Jia Tan e280470040 Build: Add the logo and license to the release. 2024-01-25 01:39:35 +08:00
Jia Tan 509157c80c Doc: Rename Doxygen HTML doc directory name liblzma => api.
When the docs are installed, calling the directory "liblzma" is
confusing since multiple other files in the doc directory are for
liblzma. This should also make it more natural for distros when they
package the documentation.
2023-03-17 01:42:28 +08:00
Jia Tan 1321852a3b Build: Create doxygen/update-doxygen script.
This is a helper script to generate the Doxygen documentation. It can be
run in 'liblzma' or 'internal' mode by setting the first argument. It
will default to 'liblzma' mode and only generate documentation for the
liblzma API header files.

The helper script will be run during the custom mydist hook when we
create releases. This hook already alters the source directory, so its
fine to do it here too. This way, we can include the Doxygen generated
files in the distrubtion and when installing.

In 'liblzma' mode, the JavaScript is stripped from the .html files and
the .js files are removed. This avoids license hassle from jQuery and
other libraries that Doxygen 1.9.6 puts into jquery.js in minified form.
2023-03-17 01:42:28 +08:00
Jia Tan b1216a7772 Build: Install Doxygen docs and include in distribution if generated.
Added a install-data-local target to install the Doxygen documentation
only when it has been generated. In order to correctly remove the docs,
a corresponding uninstall-local target was added.

If the doxygen docs exist in the source tree, they will also be included
in the distribution now too.
2023-03-17 01:42:28 +08:00
Lasse Collin c97d12f300 Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile.
Instead of having Doxyfile.in configured by Autoconf, the Doxyfile
can have the tags that need to be configured piped into the doxygen
command through stdin with the overrides after Doxyfile's contents.

Going forward, the documentation should be generated in two different
modes: liblzma or internal.

liblzma is useful for most users. It is the documentation for just
the liblzma API header files. This is the default.

internal is for people who want to understand how xz and liblzma work.
It might be useful for people who want to contribute to the project.
2023-03-17 01:42:28 +08:00
Lasse Collin d13bfcc005 Build: Include the CMake files in the distribution.
This was supposed to be done in 2020 with 5.2.5 release
already but it was noticed only today. 5.2.5 and 5.2.6
even mention experiemental CMake support in the NEWS entries.

Thanks to Olivier B. for reporting the problem.
2022-08-18 17:49:16 +03:00
Lasse Collin 352672732c Build: Start the generated ChangeLog from around 5.2.0 instead of 5.0.0.
This makes ChangeLog smaller.
2022-07-25 19:28:26 +03:00
Lasse Collin b8e12f5ab4 Typo fixes from fossies.org.
https://fossies.org/linux/misc/xz-5.2.5.tar.xz/codespell.html
2020-03-23 18:07:50 +02:00
Lasse Collin 6f7211b6bb Build: Add support for translated man pages using po4a.
The dependency on po4a is optional. It's never required to install
the translated man pages when xz is built from a release tarball.
If po4a is missing when building from xz.git, the translated man
pages won't be generated but otherwise the build will work normally.

The translations are only updated automatically by autogen.sh and
by "make mydist". This makes it easy to keep po4a as an optional
dependency and ensures that I won't forget to put updated
translations to a release tarball.

The translated man pages aren't installed if --disable-nls is used.

The installation of translated man pages abuses Automake internals
by calling "install-man" with redefined dist_man_MANS and man_MANS.
This makes the hairy script code slightly less hairy. If it breaks
some day, this code needs to be fixed; don't blame Automake developers.

Also, this adds more quotes to the existing shell script code in
the Makefile.am "-hook"s.
2020-02-07 15:32:21 +02:00
Lasse Collin 1520f6ec80 Build: Omit pre-5.0.0 entries from the generated ChangeLog.
It makes ChangeLog significantly smaller.
2017-04-24 19:48:47 +03:00
Lasse Collin 72f7307cfd Build: Include 04_compress_easy_mt.c in the tarball. 2014-12-21 18:01:45 +02:00
Lasse Collin 56056571df Build: Add --disable-doc to configure. 2014-04-25 17:44:26 +03:00
Lasse Collin 0b09d266cc Build: Include macosx/build.sh in the distribution.
It has been in the Git repository since 2010 but probably
few people have seen it since it hasn't been included in
the release tarballs. :-(
2012-07-05 07:33:35 +03:00
Lasse Collin f1675f765f Fix the top-level Makefile.am for the new example programs. 2012-06-14 20:15:30 +03:00
Lasse Collin bd35d903a0 liblzma: Use symbol versioning.
Symbol versioning is enabled by default on GNU/Linux,
other GNU-based systems, and FreeBSD.

I'm not sure how stable this is, so it may need
backward-incompatible changes before the next release.

The idea is that alpha and beta symbols are considered
unstable and require recompiling the applications that
use those symbols. Once a symbol is stable, it may get
extended with new features in ways that don't break
compatibility with older ABI & API.

The mydist target runs validate_map.sh which should
catch some probable problems in liblzma.map. Otherwise
I would forget to update the map file for new releases.
2011-05-28 15:55:39 +03:00
Lasse Collin 21b45b9bab Build: Set GZIP_ENV=-9n in top-level Makefile.am. 2011-05-23 18:30:30 +03:00
Lasse Collin 37c25658ef Build: Copy the example programs to $docdir/examples.
The example programs by Daniel Mealha Cabrita were included
in the git repository, but I had forgot to add them to
Makefile.am. Thus, they didn't get included in the source
package at all by "make dist".
2010-10-26 15:48:48 +03:00
Lasse Collin e45929260c Build: Fix mydist rule when .git doesn't exist. 2010-10-23 17:25:52 +03:00
Lasse Collin 9166682dc6 Create the PDF versions of the man pages better. 2010-09-28 11:40:12 +03:00
Lasse Collin 17d3c61edd Move version.sh to build-aux. 2010-09-28 10:59:53 +03:00
Lasse Collin 3e49c8acb0 Put the git commit to the filename in mydist rule. 2010-06-11 10:40:28 +03:00
Lasse Collin b4b1a56e0c Add lzmainfo.1 to manfiles list to convert to .txt and .pdf. 2010-01-29 13:24:27 +02:00
Lasse Collin 682efdc1f9 "make dist" fixes 2009-08-27 18:36:59 +03:00
Lasse Collin 77007a7fb2 Add missing files to EXTRA_DIST. 2009-08-27 16:36:40 +03:00
Lasse Collin 4c3558aa83 Add "dos" to EXTRA_DIST. 2009-08-27 15:34:45 +03:00
Lasse Collin 8e8ebc17c5 Install faq.txt. 2009-08-18 00:30:09 +03:00
Lasse Collin df636eb4e0 Add xz man page to manfiles in toplevel Makefile.am. 2009-08-13 09:37:21 +03:00
Lasse Collin adbad2d16c Added history.txt to doc_DATA. 2009-07-24 13:15:06 +03:00
Lasse Collin 99f9e879a6 Major documentation update.
Installation and packaging instructions were added.
README and other generic docs were revised.

Some of the documentation files are now installed to $docdir.
2009-07-19 13:14:20 +03:00
Lasse Collin 4c9c989d45 Use AC_CONFIG_AUX_DIR to clean up the toplevel directory
a little.

Fixed a related bug in the toplevel Makefile.am.

Added the build-aux directory to .gitignore.
2009-07-18 18:54:55 +03:00
Lasse Collin d873a09e95 Add dist-hook to create ChangeLog from the commit log,
and to conver the man pages to PDF and plain text, which
may be convenient to those who cannot render man pages.
2009-07-12 19:08:30 +03:00
Lasse Collin eaf8367368 Add version.sh to EXTRA_DIST. 2009-06-26 14:18:32 +03:00