Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion builtins/extractcode_7z_system_provided/README.rst
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
A ScanCode Toolkit plugin to use pre-installed system binary libraries and utilities.
A ScanCode Toolkit plugin to use pre-installed 7zip executables
===============================================================

the path of 7zip is either determined by distro data or explicitily
taken from ``EXTRACTCODE_7Z_PATH`` environment variable
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@


import platform
from os import environ
from os import path

from plugincode.location_provider import LocationProviderPlugin
Expand All @@ -22,26 +23,31 @@ def get_locations(self):
locations of the 7zip exe and shared libraries as installed on various
Linux distros or on FreeBSD.
"""
mainstream_system = platform.system().lower()
if mainstream_system == 'linux':
distribution = platform.linux_distribution()[0].lower()
debian_based_distro = ['ubuntu', 'mint', 'debian']
rpm_based_distro = ['fedora', 'redhat']

if distribution in debian_based_distro:
lib_dir = '/usr/lib/p7zip'

elif distribution in rpm_based_distro:
lib_dir = '/usr/libexec/p7zip'

else:
raise Exception('Unsupported system: {}'.format(distribution))
elif mainstream_system == 'freebsd':
lib_dir = '/usr/local/libexec/p7zip'
lib_7z = environ.get('EXTRACTCODE_7Z_PATH')
if not lib_7z:
mainstream_system = platform.system().lower()
if mainstream_system == 'linux':
distribution = platform.linux_distribution()[0].lower()
debian_based_distro = ['ubuntu', 'mint', 'debian']
rpm_based_distro = ['fedora', 'redhat']

if distribution in debian_based_distro:
lib_dir = '/usr/lib/p7zip'

elif distribution in rpm_based_distro:
lib_dir = '/usr/libexec/p7zip'

else:
raise Exception('Unsupported system: {}'.format(distribution))
elif mainstream_system == 'freebsd':
lib_dir = '/usr/local/libexec/p7zip'
lib_7z = path.join(lib_dir, '7z')
else:
lib_dir = path.dirname(lib_7z)

locations = {
'extractcode.sevenzip.libdir': lib_dir,
'extractcode.sevenzip.exe': path.join(lib_dir, '7z'),
'extractcode.sevenzip.exe': lib_7z,
}

return locations
6 changes: 5 additions & 1 deletion builtins/extractcode_libarchive_system_provided/README.rst
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
A ScanCode Toolkit plugin to use pre-installed system binary libraries and utilities.
A ScanCode Toolkit plugin to use pre-installed libarchive library
=================================================================

the path of libarchive.so is either determined by distro data or explicitily
taken from ``EXTRACTCODE_LIBARCHIVE_PATH`` environment variable
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
# See https://aboutcode.org for more information about nexB OSS projects.
#

from os import path
import platform
from os import environ
from os import path

from plugincode.location_provider import LocationProviderPlugin

Expand All @@ -20,30 +21,35 @@ def get_locations(self):
locations of the libarchive shared library as installed on various Linux
distros or on FreeBSD.
"""
system_arch = platform.machine()
mainstream_system = platform.system().lower()
if mainstream_system == 'linux':
distribution = platform.linux_distribution()[0].lower()
debian_based_distro = ['ubuntu', 'mint', 'debian']
rpm_based_distro = ['fedora', 'redhat']

if distribution in debian_based_distro:
lib_dir = '/usr/lib/'+system_arch+'-linux-gnu'

elif distribution in rpm_based_distro:
lib_dir = '/usr/lib64'

else:
raise Exception('Unsupported system: {}'.format(distribution))

elif mainstream_system == 'freebsd':
if path.isdir('/usr/local/'):
lib_dir = '/usr/local/lib'
else:
lib_dir = '/usr/lib'
lib_archive = environ.get('EXTRACTCODE_LIBARCHIVE_PATH')
if not lib_archive:
system_arch = platform.machine()
mainstream_system = platform.system().lower()
if mainstream_system == 'linux':
distribution = platform.linux_distribution()[0].lower()
debian_based_distro = ['ubuntu', 'mint', 'debian']
rpm_based_distro = ['fedora', 'redhat']

if distribution in debian_based_distro:
lib_dir = '/usr/lib/'+system_arch+'-linux-gnu'

elif distribution in rpm_based_distro:
lib_dir = '/usr/lib64'

else:
raise Exception('Unsupported system: {}'.format(distribution))

elif mainstream_system == 'freebsd':
if path.isdir('/usr/local/'):
lib_dir = '/usr/local/lib'
else:
lib_dir = '/usr/lib'
lib_archive = path.join(lib_dir, 'libarchive.so')
else:
lib_dir = path.dirname(lib_archive)

locations = {
'extractcode.libarchive.libdir': lib_dir,
'extractcode.libarchive.dll': path.join(lib_dir, 'libarchive.so'),
'extractcode.libarchive.dll': lib_archive,
}
return locations
9 changes: 8 additions & 1 deletion builtins/typecode_libmagic_system_provided/README.rst
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
A ScanCode Toolkit plugin to use pre-installed system binary libraries and utilities.
A ScanCode Toolkit plugin to use pre-installed libmagic library and data file
=============================================================================

the path of libmagic is either determined by distro data or explicitly
taken from ``TYPECODE_LIBMAGIC_PATH`` environment variable. additionally
the path to ``magic.mgc`` file can be explicitly set by using
``TYPECODE_LIBMAGIC_DB_PATH`` environment variable, otherwise it is
calculated from distro data
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


from os import path
import platform
from os import environ
from os import path

from plugincode.location_provider import LocationProviderPlugin

Expand All @@ -35,38 +36,46 @@ def get_locations(self):
locations of the libmagic shared library as installed on various Linux
distros or on FreeBSD.
"""
system_arch = platform.machine()
mainstream_system = platform.system().lower()
if mainstream_system == 'linux':
distribution = platform.linux_distribution()[0].lower()
debian_based_distro = ['ubuntu', 'mint', 'debian']
rpm_based_distro = ['fedora', 'redhat']
lib_dll = environ.get('TYPECODE_LIBMAGIC_PATH')
if not lib_dll:
system_arch = platform.machine()
mainstream_system = platform.system().lower()
if mainstream_system == 'linux':
distribution = platform.linux_distribution()[0].lower()
debian_based_distro = ['ubuntu', 'mint', 'debian']
rpm_based_distro = ['fedora', 'redhat']

if distribution in debian_based_distro:
data_dir = '/usr/lib/file'
lib_dir = '/usr/lib/'+system_arch+'-linux-gnu'

if distribution in debian_based_distro:
data_dir = '/usr/lib/file'
lib_dir = '/usr/lib/'+system_arch+'-linux-gnu'
elif distribution in rpm_based_distro:
data_dir = '/usr/share/misc'
lib_dir = '/usr/lib64'

elif distribution in rpm_based_distro:
data_dir = '/usr/share/misc'
lib_dir = '/usr/lib64'
else:
raise Exception('Unsupported system: {}'.format(distribution))

else:
raise Exception('Unsupported system: {}'.format(distribution))
lib_dll = path.join(lib_dir, 'libmagic.so')

lib_dll = path.join(lib_dir, 'libmagic.so');
elif mainstream_system == 'freebsd':
if path.isdir('/usr/local/'):
lib_dir = '/usr/local'
else:
lib_dir = '/usr'

elif mainstream_system == 'freebsd':
if path.isdir('/usr/local/'):
lib_dir = '/usr/local'
else:
lib_dir = '/usr'
lib_dll = path.join(lib_dir, 'lib/libmagic.so')
data_dir = path.join(lib_dir,'share/file')
else:
lib_dir = path.dirname(lib_dll)

lib_dll = path.join(lib_dir, 'lib/libmagic.so')
data_dir = path.join(lib_dir,'share/file')
file_magic_data = environ.get('TYPECODE_LIBMAGIC_DB_PATH')
if not file_magic_data:
file_magic_data = path.join(data_dir, 'magic.mgc')

locations = {
'typecode.libmagic.libdir': lib_dir,
'typecode.libmagic.dll': lib_dll,
'typecode.libmagic.db': path.join(data_dir, 'magic.mgc'),
'typecode.libmagic.db': file_magic_data,
}
return locations