Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

synocli-file: add pixz #6075

Closed
wants to merge 47 commits into from
Closed

synocli-file: add pixz #6075

wants to merge 47 commits into from

Conversation

dotysan
Copy link
Contributor

@dotysan dotysan commented Apr 16, 2024

Description

The pixz command is the parallel indexing xz compressor.

It is a diyspk and added to synocli-file package.

This incorporates and closes #6073.

Checklist

  • Build rule all-supported completed successfully
  • New installation of package completed successfully
  • Package upgrade completed successfully (Manually install the package again)
  • Package functionality was tested
  • Any needed documentation is updated/created

Type of change

  • Bug fix
  • New Package
  • Package update
  • Includes small framework changes
  • This change requires a documentation update (e.g. Wiki)

Draft PR

Need to test further and find/update any documentation updates.

dotysan added 7 commits April 15, 2024 14:05
 - also fix license
 - build from pre-configured tarball instead of raw source
 - which seems to support GNU configure
 - libcrytpo is runtime dependency
 - don't include bsd* cli; just shared object only
 - patched to allow cross-compile
I have no idea why. But spk/synocli-file would not build pixz. However,
cross/libarchive and diyspk/pigz both built standalone just fine.

Also documenting some other strange and no-determininistic artifacts
linked to build enviornment.
@dotysan
Copy link
Contributor Author

dotysan commented Apr 16, 2024

Note to self. Don't forget to bump rev on diyspk/pixz.

@dotysan
Copy link
Contributor Author

dotysan commented Apr 16, 2024

All arch-specific CI builds are failing. [sigh]

It built for me because I'm using 7.2 toolchain and rebuilt the docker image in Debian 12. master...dotysan:spksrc:dotysan

I see some ideas upstream. In particular patches in AC_CHECK_FUNCS in configure.ac. I'll try them out, but not really sure if that is the best course of action or now...

@dotysan
Copy link
Contributor Author

dotysan commented Apr 17, 2024

OK, so patched a couple things to get it to build on the old toolchains and container.

@dotysan dotysan marked this pull request as ready for review April 17, 2024 21:32
@hgy59

This comment was marked as outdated.

@hgy59
Copy link
Contributor

hgy59 commented Apr 17, 2024

synocli-file/Makefile needs some adjustments.

please increment SPK_VERS to 3.4.
synocli package version information should increment the minor version when tools are added and increment major version for incompatible (breaking) changes (i.e. when tools are removed).

DESCRIPTION must contain pixz.

CHANGELOG must reflect the changes since last publish (i.e. add pixz).

and finally the wiki page with the package description must be updated (https://github.com/SynoCommunity/spksrc/wiki/FAQ-SynoCliFile)

@hgy59 hgy59 changed the title new package: pixz synocli-file: add pixz Apr 17, 2024
@hgy59
Copy link
Contributor

hgy59 commented Apr 18, 2024

@dotysan the build error was write.c:(.text+0xaac): undefined reference to 'rpl_malloc'

This can be fixed without a patch by adding:

CONFIGURE_ARGS += ac_cv_func_malloc_0_nonnull=yes

I was able to build pixz without any patch and without calling autoreconf -fi with the following configure args:

CONFIGURE_ARGS  = ac_cv_file_src_pixz_1=false
CONFIGURE_ARGS += ac_cv_func_malloc_0_nonnull=yes
CONFIGURE_ARGS += --without-manpage

@dotysan the "CONFIGURE_ARGS += ac_cv_func_malloc_0_nonnull=yes" worked once for x64, but now it does not work anymore (?).
So it is ok to fix the build with the patches and use autoreconf.

Since the two patches are for the same file (configure.ac) I propose to merge those into one patch file. This will also help for future updates.

@hgy59
Copy link
Contributor

hgy59 commented Apr 18, 2024

and finally the wiki page with the package description must be updated (https://github.com/SynoCommunity/spksrc/wiki/FAQ-SynoCliFile)

this task is completed.

HOMEPAGE = https://www.libarchive.org/
LICENSE = 3-Clause BSD

BUILD_DEPENDS = native/autoconf
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It works without native/autoconf.
and if you do not add the native/autoconf binary folder to the path, the build can't find it

Suggested change
BUILD_DEPENDS = native/autoconf

cross/libarchive/PLIST Outdated Show resolved Hide resolved
@dotysan
Copy link
Contributor Author

dotysan commented Apr 19, 2024

Since the two patches are for the same file (configure.ac) I propose to merge those into one patch file. This will also help for future updates.

They have different sources though.

The first is not my patch, but an upstream commit that hasn't swum into a release yet. vasi/pixz@4ddfdca

The second patch is my blind attempt to make it cross-compile.

I've inquired upstream about both:

But not response yet.

Commented in my PR is another idea. Just build from upstream HEAD. But I'm not qualified to maintain this. Thus the old latest release with a cherry-picked patch and a separate patch/hack.

Link shared object aliases instead of copy.

Co-authored-by: hgy59 <[email protected]>
@dotysan
Copy link
Contributor Author

dotysan commented Apr 19, 2024

This Build (qoriq-6.2.4) has been persnickety before. But I don't understand why?!?

dotysan and others added 5 commits April 18, 2024 18:01
 - also clean up kruft
- update native/nasm to v2.16.03 (nasm is available as latest version only)
- update native/go to v1.21.9
- update gmp to v6.3.0
- update python310 to include working openssl for ARMv5 archs
* update git
- update git to v2.45.0 and use cross/openssl3
- update git-lfs to v 3.5.1

* update gitea to v1.21.11
- update octroprint
- ARMv5 packages are availble again, since SynoCommunity#6025
hgy59 and others added 22 commits June 11, 2024 19:51
* fix toolchain cache keys
- use only the matrix.arch specific digests file as cache-key

* disable cache for qoriq toolchain
- this is mandatory to install custom qoriq rust toolchain
* github-action: Fix build with publishing for noarch packages
* fix autoconf (SynoCommunity#6015)
- fix autoconf to use installed m4 command

* synocli-develop: update tools
- update binutils to v2.41 for DSM 6 and v2.42 for DSM 7
- update autoconf to v2.72
- update strace to v6.8

* fix binutils for 32-bit archs on DSM 7
* use binutils-latest for all toolchains with c++11 support

* update devel tools:
- update gdb to v14.2
- update strace to v6.9
- this is a security update for SynoCommunity#6140 and others
- update cloudflared
- rename displayed package name to "Cloudflare Tunnel"
* synocli-devel: fix build of gdb for OLD_PPC_ARCHS
* synocli-devel: fix for OLD_PPC AND ARMv5 archs
- add patch to cross/strace to fix build for OLD_PPC_ARCHS
- arrange the order of dependent packages
* Update Gitea to v1.22.0
* Mark armv5 as unsupported
* update image and font libraries
- update some image libraries in preparation for updating the ImageMagick package
- update fontconfig to v2.15.0
- update freetype to v2.13.2
- update giflib to v5.2.2
- update libpng to v1.6.43
- update libtiff to v4.6.0
- update libwebp to v1.4.0
- update openjpeg to v2.5.2
- fix pngcrush to build with updated libpng

* pixman: update to v0.42.2

* x265: update to v3.6
- remove patches that are applied upstream

* update pngquant and libimagequant
- update libimagequant to v2.18.0
- update pngquant to v2.18.0
…ommunity#6089)

* kernel.mk: First attempt to fix build issue since SynoCommunity#6002

* kernel.mk: Include changes from PR SynoCommunity#5790 to include new kernels

* kernel.mk: Update to using actual DSM-7.2 kernel files

* kernel.mk: Filter out unsupported kernel archs

* kernel: Remove DSM-7.1 fixes not applicable anymore on DSM-7.2

* synokernel-cdrom: Bump package version and mark arch as unsupported

* synokernel-usbserial: Bump spk vers. and mark arch as unsupported

* kernel.mk: Yet another round of fixes

* kernel.mk: Other round of fixes simplifying the overall processing

* spk.mk: Oversight missing tc_vars.meson into the spkclean call

* kernel.mk: Other round of fixes and optimizations

* kernel.mk: Fix kernel source tree remove post module build

* kernel.mk: Fix building generic arch -> skip at toolchain

* kernel.mk: Fix kernel build-tree removal after modules are built

* kernel.mk: Remove dependency-kernel-list call

* kernel.mk: Fix re-installing toolchain at clean call

* kernel.mk: Layout fix

* kernel.mk: Remove now unecessary SUPPORTED_KERNEL_VERSIONS

* kernel.mk: Fix building rtd1619b (and partial fix for epyc7002)

* kernel.mk: Fix epyc7002 and rtd1619b kernel configuration path

* synokernel-*: Only remain epyc7002 which does not build yet
 - also fix license
 - build from pre-configured tarball instead of raw source
 - which seems to support GNU configure
 - libcrytpo is runtime dependency
 - don't include bsd* cli; just shared object only
 - patched to allow cross-compile
I have no idea why. But spk/synocli-file would not build pixz. However,
cross/libarchive and diyspk/pigz both built standalone just fine.

Also documenting some other strange and no-determininistic artifacts
linked to build enviornment.
Link shared object aliases instead of copy.

Co-authored-by: hgy59 <[email protected]>
 - also clean up kruft
@hgy59
Copy link
Contributor

hgy59 commented Jun 16, 2024

@dotysan you have a mistake in your PR/branch.
hopefully you do not want to change 348 files 😆

@dotysan
Copy link
Contributor Author

dotysan commented Jun 16, 2024

@hgy59 I totally screwed it up with a rebase. Suggestions? I'll prolly create a new branch/PR. [sigh]

@hgy59
Copy link
Contributor

hgy59 commented Jun 16, 2024

@hgy59 I totally screwed it up with a rebase. Suggestions? I'll prolly create a new branch/PR. [sigh]

I recommend to restart with a new branch.

I aldready did some work for pixz locally, but unfotunately I deleted all my local clones related to synocli-file 🥲

EDIT:
Finally I found my local copy (didn't add local changes)
I have all commits from 15.04 to 19.04 if you need some details...
git_history

@dotysan
Copy link
Contributor Author

dotysan commented Jun 16, 2024

Thanks @hgy59 think I still have them. Just need to start a new branch...

@dotysan dotysan closed this Jun 16, 2024
@dotysan dotysan mentioned this pull request Jun 16, 2024
@dotysan
Copy link
Contributor Author

dotysan commented Jun 17, 2024

I found another clone that wasn't mangled by my rebase. So I managed to force push it to the same branch and created new PR here. #6149

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants