question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Remove `*.la` files from ecosystem

See original GitHub issue

It turns out that the libtool created *.la files can cause extraneous overlinkage. This is where every shared object file gets directly linked to each of its dependencies, even if they are far upstream in the dependency chain and not actually a direct dependency.

As discussed in https://github.com/conda-forge/glib-feedstock/pull/31, conda-forge/libxcb-feedstock#9, and conda-forge/staged-recipes#673, the decision is to remove these files. However, this has been done in an incomplete and inconsistent way. We also have no way currently of preventing folks from adding these files to packages in the future.

The following is a listing of all packages which need to have the *.la files removed. Please check them off as the *.la files are removed. Additionally, we need to add docs to this repo explaining why these files are not OK. Finally, an option should be added to conda-build to prevent *.la files from being added to a package.

The command for removing the *.la files should be:

find $PREFIX -name '*.la' -delete

CC @jakirkham @ocefpaf @mingwandroid @pkgw

  • adept
  • alsa-lib
  • argtable2
  • backtrace
  • bdw-gc
  • binutils
  • brial
  • cairo
  • cairomm
  • cddlib
  • check
  • cliquer
  • cloog
  • coincbc
  • coinmp
  • cppunit
  • cunit
  • curl
  • cyrus-sasl
  • czmq
  • dbus
  • eclib
  • ecm
  • ecmwf_grib
  • exempi
  • expat
  • fflas-ffpack
  • fftw
  • flex
  • fontconfig
  • fplll
  • freetds
  • freetype
  • freexl
  • fswatch
  • gdal
  • gdb
  • gdk-pixbuf
  • geoip
  • geos
  • gettext
  • gf2x
  • giac
  • giflib
  • givaro
  • glib
  • glibmm
  • glog
  • glpk
  • gmp
  • gnutls
  • gobject-introspection
  • gperftools
  • graphviz
  • gsl
  • gst-plugins-base
  • gstreamer
  • gtk2
  • harfbuzz
  • harminv
  • hdf4
  • hdf5
  • hdfeos2
  • hdfeos5
  • hunspell
  • igraph
  • imagemagick
  • iml
  • inkscape
  • inotify-tools
  • iperf
  • ipopt
  • isl
  • jags
  • jansson
  • jasper
  • jpeg
  • jq
  • json-c
  • judy
  • lal
  • lalframe
  • lalmetaio
  • lalsimulation
  • lalxml
  • leptonica
  • lftp
  • libarchive
  • libassuan
  • libatomic_ops
  • libblitz
  • libbrial
  • libcf
  • libcmaes
  • libconfig
  • libctl
  • libdap4
  • libedit
  • libev
  • libevent
  • libffi
  • libflac
  • libframe
  • libgap
  • libgcrypt
  • libgd
  • libgdal
  • libglu
  • libgpg-error
  • libgsasl
  • libhwloc
  • libiconv
  • libidn11
  • libjpeg-turbo
  • libksba
  • libmad
  • libmagic
  • libmatio
  • libmemcached
  • libmo_unpack
  • libntlm
  • libogg
  • libpng
  • libprotobuf
  • libsecret
  • libsemigroups
  • libsigcpp
  • libsigsegv
  • libsndfile
  • libsodium
  • libspatialindex
  • libspatialite
  • libtasn1
  • libtheora
  • libtiff
  • libtool
  • libunistring
  • libunwind
  • libuuid
  • libuv
  • libvorbis
  • libwebp
  • libxcb
  • libxml2
  • libxmlpp
  • libxslt
  • lighttpd
  • linbox
  • log4cpp
  • lrcalc
  • m4ri
  • m4rie
  • mesalib
  • metaio
  • moab
  • modsecurity
  • mono
  • mpb
  • mpc
  • mpfi
  • mpfr
  • mpg123
  • mpich
  • mpir
  • nco
  • netcdf-cxx4
  • netcdf-fortran
  • neuron
  • nfft
  • nlopt
  • npth
  • ntbtls
  • ntl
  • numcosmo
  • ocl-icd
  • octave
  • oniguruma
  • openfst
  • openmotif-dev
  • openmpi
  • ossuuid
  • pango
  • pcre
  • pcre2
  • pixman
  • planarity
  • pocketsphinx
  • popt
  • postgis
  • ppl
  • primesieve
  • proj4
  • protobuf
  • pygobject
  • pymeep
  • pynac
  • python-ecmwf_grib
  • qd
  • qpdf
  • qt
  • qtlocation
  • qtwebkit
  • rw
  • sdl2
  • sdl2_gfx
  • sdl2_image
  • sdl2_mixer
  • sdl2_net
  • sdl2_ttf
  • singular
  • singularity
  • smpeg2
  • snappy
  • source-highlight
  • sox
  • speex
  • sphinxbase
  • sqlite
  • sstp-client
  • tesseract
  • texinfo
  • texlive-core
  • trmm_rsl
  • udunits
  • udunits2
  • unixodbc
  • xerces-c
  • xorg-libice
  • xorg-libsm
  • xorg-libx11
  • xorg-libxau
  • xorg-libxaw
  • xorg-libxaw3d
  • xorg-libxcb
  • xorg-libxcursor
  • xorg-libxdmcp
  • xorg-libxext
  • xorg-libxfixes
  • xorg-libxft
  • xorg-libxi
  • xorg-libxmu
  • xorg-libxp
  • xorg-libxpm
  • xorg-libxrandr
  • xorg-libxrender
  • xorg-libxt
  • xorg-libxtst
  • xraylib
  • xz
  • yaml
  • zbar
  • zeromq
  • zookeeper-c

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:23 (20 by maintainers)

github_iconTop GitHub Comments

4reactions
mingwandroidcommented, Aug 1, 2018

I’m considering adding a check to see that lib packages identified as run requirements are contributing a .so that’s actually linked to, issuing a warning otherwise.

2reactions
epruessecommented, Aug 29, 2018

Sounds all nice. What do I do if my builds now fail with

/bin/bash ./libtool  --tag=CXX   --mode=link g++ -std=c++11  -g -O2 -w -L/home/travis/miniconda/lib/arb/lib -Wl,-rpath -Wl,/home/travis/miniconda/lib/arb/lib -Wl,-rpath -Wl,/home/travis/miniconda/lib   -o src/libsina.la -rpath /home/travis/install/lib src/align.lo src/aligned_base.lo src/alignment_stats.lo src/cseq.lo src/cseq_comparator.lo src/famfinder.lo src/mseq.lo src/pseq.lo src/query_arb.lo src/query_pt.lo src/rw_fasta.lo src/rw_arb.lo src/log.lo src/search_filter.lo src/tray.lo src/kmer_search.lo -lz -lARBDB -lCORE -L/home/travis/miniconda/lib -lglib-2.0 -lboost_program_options -lboost_thread -lpthread -lboost_serialization -lboost_system -ltbb -ltbbmalloc -lrt 
/bin/grep: /home/travis/miniconda/lib/libiconv.la: No such file or directory
/home/travis/miniconda/bin/sed: can't read /home/travis/miniconda/lib/libiconv.la: No such file or directory
libtool:   error: '/home/travis/miniconda/lib/libiconv.la' is not a valid libtool archive
make[1]: *** [src/libsina.la] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/home/travis/build/epruesse/SINA'
make: *** [all] Error 2

?

Best I can come up with is manually creating the missing .la file. 😦

Read more comments on GitHub >

github_iconTop Results From Across the Web

F36 Change: Remove .la files from buildroot (Self-Contained ...
F36 Change: Remove .la files from buildroot (Self-Contained Change proposal).
Read more >
Project:Quality Assurance/Handling Libtool Archives
The canonical way of deleting .la files. If you're sure you can delete any generated .la files, the recommended way goes along the...
Read more >
Removing numbers from file names when exporting la... - Adobe ...
I am running CC 2017 and have not found a working way to edit the script to remove the numbers at the beginning...
Read more >
Chapter 43. Removing Stratis file systems
You can remove an existing Stratis file system or a Stratis pool, destroying data on them. Important. Stratis is a Technology Preview feature...
Read more >
Process Management - PM2
pm2 start "npm run start" $ pm2 start "ls -la" $ pm2 start app.py ... Example with this ecosystem.config.js file: ... To stop...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found