Closed suntong closed 1 year ago
Just noticed the Force Build IM : no
line in the screen output. How should I enforce it please?
sudo bash "$t" --use-checkinstall --force-imagemagick
, andsudo bash "$t" --use-checkinstall --force-im
But for either case, I got Force Build IM : no
. Here is the screen output of the 4th round installation:
$ sudo bash "$t" --use-checkinstall --force-im
################################################
Welcome to IMEI - ImageMagick Easy Install 6.8.2
################################################
Detected OS : Ubuntu 22.04.2 LTS
Detected Arch : x86_64
Detected Cores : 1
Used web client : curl
Work Dir : /usr/local/src/imei
Build Dir : /usr/local
Config Dir : /usr/local/etc
Log File : /var/log/imei.log
Force Build All : no
Force Build IM : no
Checkinstall : yes
CI Build : no
Signature Check : yes
#####################
Installation Process
#####################
Installing dependencies [OK]
Building aom [SKIPPED]
Building libheif [SKIPPED]
Building jpegxl [SKIPPED]
Building ImageMagick (Q16) [SKIPPED]
Verifying installation [OK]
Process has been finished successfully after 19 seconds!
Overall, in my current situation, how to create the ImageMagick system package without going through the 15-hours reinstallation please?
As for the force-im, I just noticed a bug in the code, while you were creating your follow up response.
You're right, that at least the logging should be improved. However, IMEI doesn't perform a conflict check at all. The reason is, that I cannot determine, if a previously installed Imagemagick version was installed by IMEI, or not. So it can just be advised, that any previously installed Imagemagick version should be uninstalled first.
The "conflict check" is nothing else than a check, if Imagemagick is installed on the system in the desired/expected version. Logically, this check can only be performed after installation. However, I may have an idea for a small improvement.
if Imagemagick is installed on the system in the desired/expected version. Logically, this check can only be performed after installation. However, I may have an idea for a small improvement.
Yes, since imei targets for Debian/Ubuntu, then it is very easy to check first, say with dpkg -l | grep imagemagick
, or imagemagick-6.q16
, or whatever name that Debian/Ubuntu uses other than imei's name.
That's somewhat, what I had in mind. However, I want to add, that the reason for the failure was probably not, that ImageMagick was already installed when you executed the script for the first time. The script just makes sure, that the executable in the build directory returns the correct version. So technically, you can install multiple versions of Imagemagick on the system. It's just not advised to do so.
Probably, however due to the fact that my log was lost, I cannot go back and check or provide you with more info, :(
Probably, however due to the fact that my log was lost, I cannot go back and check or provide you with more info, :(
Until now, the log will be removed on every script execution (not during, or after). But should be better with the next version.
Please see, if version 6.9.0 fixed this issue.
the reason for the failure was probably not, that ImageMagick was already installed when you executed the script for the first time.
It should be. Although I cannot go back and check, the built imei-imagemagick_7
has the control section of:
Provides: imei-imagemagick
Conflicts: imagemagick
Thus, if the ImageMagick was already installed, then the installation should be failing. I believe what happened is checkinstall itself failed once it detects the ImageMagick was already installed.
This is what I'm getting this time:
$ bash "$t" --use-checkinstall --force
. . .
Force Build All : yes
Force Build IM : no
Checkinstall : yes
CI Build : no
Signature Check : yes
#####################
Installation Process
#####################
Installing dependencies [OK]
Building aom [OK]
Building libheif [SKIPPED (aom is required but not installed)]
Building jpegxl [OK]
Building ImageMagick (Q16) [OK]
Verifying installation [OK]
Process has been finished successfully after 1 hours 39 minutes and 34 seconds!
and bash "$t" --use-checkinstall --force-imagemagick
is having the line
Force Build IM : yes
too.
So basically the reported problem is fixed, and for the remaining one I'm opening a new one at #90.
and
bash "$t" --use-checkinstall --force-imagemagick
is having the line
Force Build IM : yes
too.So basically the reported problem is fixed,
Oh, --force-imagemagick
is forcing to build aom, and I believe it is a bug:
$ bash "$t" --use-checkinstall --force-imagemagick
. . .
Force Build All : no
Force Build IM : yes
Checkinstall : yes
CI Build : no
Signature Check : yes
#####################
Installation Process
#####################
Installing dependencies [OK]
Building aom [..]
and the log is currently saying:
[ 42%] Building C object CMakeFiles/aom_av1_decoder.dir/av1/decoder/obu.c.o
[ 42%] Built target aom_av1_decoder
[ 42%] Building C object CMakeFiles/aom_av1_encoder.dir/av1/av1_cx_iface.c.o
Thus reopening the issue.
It's not a bug in IMEI, I think. Try --skip-aom
with --force-imagemagick
. I guess, the result is the same. But I will check that as well.
Yeah the interpretation of script behavior is up to you, but I personally think that --force-imagemagick
should force build only imagemagick, nothing else, which goes well with the prompt of Force Build All : no
.
But then why "--force-imagemagick is forcing to build aom" is "not a bug in IMEI"?
It's not forcing to build aom. From the code:
if [ -z "$SKIP_AOM" ]; then
if [ -z "$FORCE" ] && [ -n "$INSTALLED_AOM_VER" ] && [ "$(version "$INSTALLED_AOM_VER")" -ge "$(version "$AOM_VER")" ]; then
echo -ne " Building aom [${CYELLOW}SKIPPED${CEND}]\\r"
echo ""
return
fi
else
echo -ne " Building aom [${CYELLOW}SKIPPED${CEND}]\\r"
echo ""
return
fi
As you can see, first it checks, if --skip-aom
is set. If not, it checks, if --force
is set. If not, it checks, if aom is installed, and if the installed version differs from the latest version. Only if the version check "fails", aom will be built.
So, if --skip-aom
is set, or if the installed versions of the aom lib are identical, and --force
is unset, building aom will be skipped.
Ok, got you, if you think it is necessary... (but I still think it should not be built during my specific case, as my installed version is imei-libaom_
3.6.1)
I just notice one more thing, --force-imagemagick
is not building the .dep
package:
$ bash "$t" --use-checkinstall --force-imagemagick
. . .
Log File : /var/log/imei-1693413338.log
Force Build All : no
Force Build IM : yes
Checkinstall : yes
CI Build : no
Signature Check : yes
#####################
Installation Process
#####################
Installing dependencies [OK]
Building aom [OK]
Building libheif [OK]
Building jpegxl [OK]
Building ImageMagick (Q16) [OK]
Verifying installation [OK]
Process has been finished successfully after 1 hours 37 minutes and 34 seconds!
$ dir /usr/local/src/
-rw-r--r-- 1 root root 9625300 2023-08-30 12:05 imei-imagemagick_7.1.1-15-imei6.9.0_amd64.deb
-rw-r--r-- 1 root root 4353484 2023-08-30 13:00 imei-libaom_3.6.1-imei6.9.0_amd64.deb
-rw-r--r-- 1 root root 398448 2023-08-30 13:05 imei-libheif_1.16.2-imei6.9.0_amd64.deb
-rw-r--r-- 1 root root 3980350 2023-08-30 13:49 imei-libjxl_0.8.2-imei6.9.0_amd64.deb
Notice the time when the imei-imagemagick_7
file was created? It's from my last --force
build almost two hours ago. I.e., the --force-imagemagick
is not building a new .dep
package.
You could check the logfile. Maybe checkinstall refuses to overwrite it.
Good idea.
Oh, the Installation failed with cannot find -lheif
--
Installing with make install...
========================= Installation results ===========================
make install-am
make[1]: Entering directory '/usr/local/src/imei/ImageMagick-7.1.1-15'
CXXLD utilities/magick
CCLD coders/heic.la
/usr/bin/ld: cannot find -lheif: No such file or directory
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:7501: coders/heic.la] Error 1
make[1]: Leaving directory '/usr/local/src/imei/ImageMagick-7.1.1-15'
make: *** [Makefile:12782: install] Error 2
**** Installation failed. Aborting package creation.
Cleaning up...OK
Bye.
Strange, why it was OK previously?
Do you want me to post the log somewhere?
You can simply upload it here. Or as a gist.
Sure,
Hmm... cat /var/log/imei-1693413338.log
failed for me as it is too big to fit into the clipboard, posted to https://fars.ee/Z-3A instead. Here, showing the last 300 lines:
tail -300 /var/log/imei-1693413338.log
$ tail -300 /var/log/imei-1693413338.log CC coders/pix_la-pix.lo CC coders/plasma_la-plasma.lo CC coders/pnm_la-pnm.lo CC coders/ps_la-ps.lo CC coders/ps2_la-ps2.lo CC coders/ps3_la-ps3.lo CC coders/psd_la-psd.lo CC coders/pwp_la-pwp.lo CC coders/qoi_la-qoi.lo CC coders/raw_la-raw.lo CC coders/rgb_la-rgb.lo CC coders/rgf_la-rgf.lo CC coders/rla_la-rla.lo CC coders/rle_la-rle.lo CC coders/scr_la-scr.lo CC coders/sct_la-sct.lo CC coders/sfw_la-sfw.lo CC coders/sgi_la-sgi.lo CC coders/sixel_la-sixel.lo CC coders/stegano_la-stegano.lo CC coders/strimg_la-strimg.lo CC coders/sun_la-sun.lo CC coders/svg_la-svg.lo coders/svg.c: In function 'RenderRSVGImage': coders/svg.c:443:5: warning: 'rsvg_handle_write' is deprecated: Use 'rsvg_handle_read_stream_sync' instead [-Wdeprecated-declarations] 443 | (void) rsvg_handle_write(svg_handle,buffer,n,&error); | ^ In file included from coders/svg.c:92: /usr/include/librsvg-2.0/librsvg/rsvg.h:602:10: note: declared here 602 | gboolean rsvg_handle_write (RsvgHandle *handle, | ^~~~~~~~~~~~~~~~~ coders/svg.c:449:3: warning: 'rsvg_handle_close' is deprecated: Use 'rsvg_handle_read_stream_sync' instead [-Wdeprecated-declarations] 449 | rsvg_handle_close(svg_handle,&error); | ^~~~~~~~~~~~~~~~~ In file included from coders/svg.c:92: /usr/include/librsvg-2.0/librsvg/rsvg.h:630:10: note: declared here 630 | gboolean rsvg_handle_close (RsvgHandle *handle, GError **error); | ^~~~~~~~~~~~~~~~~ coders/svg.c:454:3: warning: 'rsvg_handle_get_dimensions' is deprecated: Use 'rsvg_handle_get_intrinsic_size_in_pixels' instead [-Wdeprecated-declarations] 454 | rsvg_handle_get_dimensions(svg_handle,&dimension_info); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from coders/svg.c:92: /usr/include/librsvg-2.0/librsvg/rsvg.h:731:6: note: declared here 731 | void rsvg_handle_get_dimensions (RsvgHandle *handle, RsvgDimensionData *dimension_data); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ coders/svg.c:466:7: warning: 'rsvg_handle_get_dimensions' is deprecated: Use 'rsvg_handle_get_intrinsic_size_in_pixels' instead [-Wdeprecated-declarations] 466 | rsvg_handle_get_dimensions(svg_handle,&dpi_dimension_info); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from coders/svg.c:92: /usr/include/librsvg-2.0/librsvg/rsvg.h:731:6: note: declared here 731 | void rsvg_handle_get_dimensions (RsvgHandle *handle, RsvgDimensionData *dimension_data); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ coders/svg.c:568:7: warning: 'rsvg_handle_render_cairo' is deprecated: Use 'rsvg_handle_render_document' instead [-Wdeprecated-declarations] 568 | rsvg_handle_render_cairo(svg_handle,cairo_image); | ^~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/librsvg-2.0/librsvg/rsvg.h:1464, from coders/svg.c:92: /usr/include/librsvg-2.0/librsvg/rsvg-cairo.h:95:10: note: declared here 95 | gboolean rsvg_handle_render_cairo (RsvgHandle *handle, cairo_t *cr); | ^~~~~~~~~~~~~~~~~~~~~~~~ CC coders/tga_la-tga.lo CC coders/thumbnail_la-thumbnail.lo CC coders/tile_la-tile.lo CC coders/tim_la-tim.lo CC coders/tim2_la-tim2.lo CC coders/ttf_la-ttf.lo CC coders/txt_la-txt.lo CC coders/uil_la-uil.lo CC coders/url_la-url.lo CC coders/uyvy_la-uyvy.lo CC coders/vicar_la-vicar.lo CC coders/vid_la-vid.lo CC coders/video_la-video.lo CC coders/viff_la-viff.lo CC coders/vips_la-vips.lo CC coders/wbmp_la-wbmp.lo CC coders/wpg_la-wpg.lo CC coders/xbm_la-xbm.lo CC coders/xc_la-xc.lo CC coders/xcf_la-xcf.lo CC coders/xpm_la-xpm.lo CC coders/xps_la-xps.lo CC coders/yaml_la-yaml.lo CC coders/ycbcr_la-ycbcr.lo CC coders/yuv_la-yuv.lo CC coders/djvu_la-djvu.lo CC coders/exr_la-exr.lo CC coders/heic_la-heic.lo CC coders/jbig_la-jbig.lo CC coders/jpeg_la-jpeg.lo CC coders/jp2_la-jp2.lo CC coders/jxl_la-jxl.lo CC coders/png_la-png.lo CC coders/ept_la-ept.lo CC coders/tiff_la-tiff.lo CC coders/tiff_la-psd.lo CC coders/webp_la-webp.lo CC coders/wmf_la-wmf.lo CC coders/x_la-x.lo CC coders/xwd_la-xwd.lo CC filters/analyze_la-analyze.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-Blob.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-BlobRef.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-CoderInfo.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-Color.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-Drawable.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-Exception.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-Functions.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-Geometry.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-Image.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-ImageRef.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-Montage.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-Options.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-Pixels.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-ResourceLimits.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-SecurityPolicy.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-Statistic.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-STL.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-Thread.lo CXX Magick++/lib/libMagick___7_Q16HDRI_la-TypeMetric.lo CCLD MagickCore/libMagickCore-7.Q16HDRI.la CCLD MagickWand/libMagickWand-7.Q16HDRI.la CCLD coders/aai.la CCLD coders/art.la CCLD coders/ashlar.la CCLD coders/avs.la CCLD coders/bayer.la CCLD coders/bgr.la CCLD coders/bmp.la CCLD coders/braille.la CCLD coders/cals.la CCLD coders/caption.la CCLD coders/cin.la CCLD coders/cip.la CCLD coders/clip.la CCLD coders/cmyk.la CCLD coders/cube.la CCLD coders/cut.la CCLD coders/dcm.la CCLD coders/dds.la CCLD coders/debug.la CCLD coders/dib.la CCLD coders/dng.la CCLD coders/dot.la CCLD coders/dpx.la CCLD coders/farbfeld.la CCLD coders/fax.la CCLD coders/fits.la CCLD coders/fl32.la CCLD coders/ftxt.la CCLD coders/gif.la CCLD coders/gradient.la CCLD coders/gray.la CCLD coders/hald.la CCLD coders/hdr.la CCLD coders/histogram.la CCLD coders/hrz.la CCLD coders/html.la CCLD coders/icon.la CCLD coders/info.la CCLD coders/inline.la CCLD coders/ipl.la CCLD coders/jnx.la CCLD coders/json.la CCLD coders/kernel.la CCLD coders/label.la CCLD coders/mac.la CCLD coders/magick.la CCLD coders/map.la CCLD coders/mask.la CCLD coders/mat.la CCLD coders/matte.la CCLD coders/meta.la CCLD coders/miff.la CCLD coders/mono.la CCLD coders/mpc.la CCLD coders/mpr.la CCLD coders/msl.la CCLD coders/mtv.la CCLD coders/mvg.la CCLD coders/null.la CCLD coders/ora.la CCLD coders/otb.la CCLD coders/palm.la CCLD coders/pango.la CCLD coders/pattern.la CCLD coders/pcd.la CCLD coders/pcl.la CCLD coders/pcx.la CCLD coders/pdb.la CCLD coders/pdf.la CCLD coders/pes.la CCLD coders/pgx.la CCLD coders/pict.la CCLD coders/pix.la CCLD coders/plasma.la CCLD coders/pnm.la CCLD coders/ps.la CCLD coders/ps2.la CCLD coders/ps3.la CCLD coders/psd.la CCLD coders/pwp.la CCLD coders/qoi.la CCLD coders/raw.la CCLD coders/rgb.la CCLD coders/rgf.la CCLD coders/rla.la CCLD coders/rle.la CCLD coders/scr.la CCLD coders/sct.la CCLD coders/sfw.la CCLD coders/sgi.la CCLD coders/sixel.la CCLD coders/stegano.la CCLD coders/strimg.la CCLD coders/sun.la CCLD coders/svg.la CCLD coders/tga.la CCLD coders/thumbnail.la CCLD coders/tile.la CCLD coders/tim.la CCLD coders/tim2.la CCLD coders/ttf.la CCLD coders/txt.la CCLD coders/uil.la CCLD coders/url.la CCLD coders/uyvy.la CCLD coders/vicar.la CCLD coders/vid.la CCLD coders/video.la CCLD coders/viff.la CCLD coders/vips.la CCLD coders/wbmp.la CCLD coders/wpg.la CCLD coders/xbm.la CCLD coders/xc.la CCLD coders/xcf.la CCLD coders/xpm.la CCLD coders/xps.la CCLD coders/yaml.la CCLD coders/ycbcr.la CCLD coders/yuv.la CCLD coders/djvu.la CCLD coders/exr.la CCLD coders/heic.la /usr/bin/ld: cannot find -lheif: No such file or directory collect2: error: ld returned 1 exit status make[1]: *** [Makefile:7501: coders/heic.la] Error 1 make[1]: Leaving directory '/usr/local/src/imei/ImageMagick-7.1.1-15' make: *** [Makefile:6236: all] Error 2 checkinstall 1.6.3, Copyright 2010 Felipe Eduardo Sanchez Diaz Duran This software is released under the GNU GPL. ***************************************** **** Debian package creation selected *** ***************************************** This package will be built according to these values: 0 - Maintainer: [ root@lplat ] 1 - Summary: [ image manipulation programs (IMEI v6.9.0) ] 2 - Name: [ imei-imagemagick ] 3 - Version: [ 7.1.1-15 ] 4 - Release: [ imei6.9.0 ] 5 - License: [ Apache-2.0 ] 6 - Group: [ checkinstall ] 7 - Architecture: [ amd64 ] 8 - Source location: [ ImageMagick-7.1.1-15 ] 9 - Alternate source location: [ ] 10 - Requires: [ libraqm0,libgomp1,libfftw3-dev,liblcms2-2,libfontconfig1,libxext6,libltdl7,liblqr-1-0-dev,libwebp-dev,libzip-dev,libice-dev,libsm-dev,imei-libaom,imei-libheif,imei-libjxl ] 11 - Recommends: [ ] 12 - Suggests: [ ] 13 - Provides: [ imei-imagemagick ] 14 - Conflicts: [ imagemagick ] 15 - Replaces: [ ] Enter a number to change any of them or press ENTER to continue: Installing with make install... ========================= Installation results =========================== make install-am make[1]: Entering directory '/usr/local/src/imei/ImageMagick-7.1.1-15' CXXLD utilities/magick CCLD coders/heic.la /usr/bin/ld: cannot find -lheif: No such file or directory collect2: error: ld returned 1 exit status make[1]: *** [Makefile:7501: coders/heic.la] Error 1 make[1]: Leaving directory '/usr/local/src/imei/ImageMagick-7.1.1-15' make: *** [Makefile:12782: install] Error 2 **** Installation failed. Aborting package creation. Cleaning up...OK Bye.
Next time: https://gist.github.com/
:)
It should be the same to you, but far more easier for me as my file is on remote VPS.
Oh, BTW, make a (force) symlink from the latest log to /var/log/imei.log
please.
I want my CI script to dump the log if the build fails.
The script will fail with none-zero return right?
It does, yes.
I performed an installation on a fresh server (Ubuntu 22.04) now. For the records:
Log: imei-1693424881.log Debs: imei.zip
As of now, I can't find any problem. Even --force-im
works, as expected:
Log: imei-1693425312.log Debs: imei.zip
And to make sure, I tested the same under Arm64:
Log: imei-1693425824.log Debs: imei.zip
As of now, I can't find any problem.
I have no idea. Hmm... have you tried
all three steps one by one? These are the steps I took maybe you'll get problems when doing all three.
Also, did you find anything suspicious from my log?
BTW, just out of curiosity, how did you post these two files please?
Log: imei-1693425312.log Debs: imei.zip
I tried, but couldn't figure it out myself.
I just built IM forcefully, after a default build, on a fresh machine.
As for the files: Drag and drop ☺️
did you find anything suspicious from my log?
Let's forget it (and revisit if necessary in the future).
Closing it.
Thanks for this wonderful build tool first of all, but I haven't been able to get what I wanted.
There are a few problems, or rooms of improvements, based on my installation experience, all around the fact that my installation failed the first time.
/var/log/imei.log
file makes it very difficult for people to report problem, and I have to do it out of my memory and cannot give the exact output, as my installation failed the first time, and everything about the failure is wiped by imei without leaving any traces.--use-checkinstall
for imei to package and install system packages, but I was not able to find theimagemagick
package in my system. Details at the end of the report.--force-imagemagick
to force building of ImageMagick only on the third attempt, but I was not able to find theimagemagick
package in my system still.--force
option to force building of components, even if they are already installed, which would take me another 15 hours.Details:
sudo bash "$t" --use-checkinstall
sudo bash "$t" --use-checkinstall --force-imagemagick
I.E., the imagemagick was not build and was not installed even after
--force-imagemagick
was used.Here are further details that might be helpful.
The 3d round installation: