diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/.gitignore b/.gitignore index 8775420..2daca88 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/hashcat-*.tar.xz +/hashcat-5.1.0.tar.gz diff --git a/0001-Fedora-build-patches.patch b/0001-Fedora-build-patches.patch new file mode 100644 index 0000000..89a5546 --- /dev/null +++ b/0001-Fedora-build-patches.patch @@ -0,0 +1,98 @@ +From 39e368c12879d31e750f765d16bcb1021d1d0f35 Mon Sep 17 00:00:00 2001 +From: Vitaly Zaitsev +Date: Wed, 6 Feb 2019 21:28:22 +0100 +Subject: [PATCH] Fedora build patches. + +--- + src/Makefile | 47 ++++++++--------------------------------------- + 1 file changed, 8 insertions(+), 39 deletions(-) + +diff --git a/src/Makefile b/src/Makefile +index f860a2d8..a2a6ed22 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -3,14 +3,14 @@ + ## License.....: MIT + ## + +-SHARED := 0 ++SHARED := 1 + DEBUG := 0 + PRODUCTION := 1 + PRODUCTION_VERSION := v5.1.0 + ENABLE_BRAIN := 1 + USE_SYSTEM_LZMA := 0 +-USE_SYSTEM_OPENCL := 0 +-USE_SYSTEM_XXHASH := 0 ++USE_SYSTEM_OPENCL := 1 ++USE_SYSTEM_XXHASH := 1 + + ## + ## Detect Operating System +@@ -91,6 +91,7 @@ INSTALL_FOLDER ?= $(PREFIX)/bin + SHARED_ROOT_FOLDER ?= $(PREFIX)/share + SHARED_FOLDER ?= $(SHARED_ROOT_FOLDER)/hashcat + DOCUMENT_FOLDER ?= $(SHARED_ROOT_FOLDER)/doc/hashcat ++BASHCOMP_FOLDER ?= $(SHARED_ROOT_FOLDER)/bash-completion/completions + LIBRARY_FOLDER ?= $(PREFIX)/lib + LIBRARY_DEV_ROOT_FOLDER ?= $(PREFIX)/include + LIBRARY_DEV_FOLDER ?= $(LIBRARY_DEV_ROOT_FOLDER)/hashcat +@@ -175,13 +176,10 @@ CFLAGS += -Wextra + endif + + ifeq ($(DEBUG),0) +-CFLAGS += -O2 +-ifneq ($(UNAME),Darwin) +-LFLAGS += -s +-endif ++CFLAGS += -DNDEBUG + else + ifeq ($(DEBUG),1) +-CFLAGS += -DDEBUG -Og -ggdb ++CFLAGS += -DDEBUG -ggdb + else + ifeq ($(DEBUG),2) + CFLAGS += -DDEBUG -Og -ggdb +@@ -426,37 +424,8 @@ install_make_shared_root: + $(INSTALL) -m 755 -d $(DESTDIR)$(SHARED_ROOT_FOLDER) + + install_docs: install_make_shared_root +- $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER) +- $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER)/charsets +- $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER)/docs +- $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER)/layouts +- $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER)/masks +- $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER)/rules +- $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER)/extra +- $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER)/extra/tab_completion +- $(INSTALL) -m 644 example.dict $(DESTDIR)$(DOCUMENT_FOLDER)/ +- $(INSTALL) -m 644 example0.hash $(DESTDIR)$(DOCUMENT_FOLDER)/ +- $(INSTALL) -m 644 example400.hash $(DESTDIR)$(DOCUMENT_FOLDER)/ +- $(INSTALL) -m 644 example500.hash $(DESTDIR)$(DOCUMENT_FOLDER)/ +- $(INSTALL) -m 755 example0.sh $(DESTDIR)$(DOCUMENT_FOLDER)/ +- $(INSTALL) -m 755 example400.sh $(DESTDIR)$(DOCUMENT_FOLDER)/ +- $(INSTALL) -m 755 example500.sh $(DESTDIR)$(DOCUMENT_FOLDER)/ +- $(INSTALL) -m 644 extra/tab_completion/hashcat.sh $(DESTDIR)$(DOCUMENT_FOLDER)/extra/tab_completion/ +- $(INSTALL) -m 644 extra/tab_completion/howto.txt $(DESTDIR)$(DOCUMENT_FOLDER)/extra/tab_completion/ +- $(INSTALL) -m 755 extra/tab_completion/install $(DESTDIR)$(DOCUMENT_FOLDER)/extra/tab_completion/ +- $(FIND) charsets/ -type d -exec $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER)/{} \; +- $(FIND) charsets/ -type f -exec $(INSTALL) -m 644 {} $(DESTDIR)$(DOCUMENT_FOLDER)/{} \; +- $(FIND) docs/ -type d -exec $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER)/{} \; +- $(FIND) docs/ -type f -exec $(INSTALL) -m 644 {} $(DESTDIR)$(DOCUMENT_FOLDER)/{} \; +- $(FIND) layouts/ -type d -exec $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER)/{} \; +- $(FIND) layouts/ -type f -exec $(INSTALL) -m 644 {} $(DESTDIR)$(DOCUMENT_FOLDER)/{} \; +- $(FIND) masks/ -type d -exec $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER)/{} \; +- $(FIND) masks/ -type f -exec $(INSTALL) -m 644 {} $(DESTDIR)$(DOCUMENT_FOLDER)/{} \; +- $(FIND) rules/ -type d -exec $(INSTALL) -m 755 -d $(DESTDIR)$(DOCUMENT_FOLDER)/{} \; +- $(FIND) rules/ -type f -exec $(INSTALL) -m 644 {} $(DESTDIR)$(DOCUMENT_FOLDER)/{} \; +- $(SED) $(SED_IN_PLACE) 's/\.\/hashcat/hashcat/' $(DESTDIR)$(DOCUMENT_FOLDER)/example0.sh +- $(SED) $(SED_IN_PLACE) 's/\.\/hashcat/hashcat/' $(DESTDIR)$(DOCUMENT_FOLDER)/example400.sh +- $(SED) $(SED_IN_PLACE) 's/\.\/hashcat/hashcat/' $(DESTDIR)$(DOCUMENT_FOLDER)/example500.sh ++ $(INSTALL) -m 755 -d $(DESTDIR)$(BASHCOMP_FOLDER) ++ $(INSTALL) -m 644 extra/tab_completion/hashcat.sh $(DESTDIR)$(BASHCOMP_FOLDER)/hashcat + + install_shared: install_make_shared_root + $(INSTALL) -m 755 -d $(DESTDIR)$(SHARED_FOLDER) +-- +2.20.1 + diff --git a/README.md b/README.md new file mode 100644 index 0000000..54d774c --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# hashcat + +The hashcat package \ No newline at end of file diff --git a/changelog b/changelog deleted file mode 100644 index c706018..0000000 --- a/changelog +++ /dev/null @@ -1,2 +0,0 @@ -* Fri Jan 17 2025 Fedora Release Engineering - 6.2.6-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild diff --git a/gating.yaml b/gating.yaml deleted file mode 100644 index 4b79bd1..0000000 --- a/gating.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- !Policy -product_versions: - - fedora-* -decision_context: bodhi_update_push_testing -subject_type: koji_build -rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.installability.functional} - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} ---- !Policy -product_versions: - - fedora-* -decision_context: bodhi_update_push_stable -subject_type: koji_build -rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.installability.functional} - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} diff --git a/hashcat-build-fixes.patch b/hashcat-build-fixes.patch deleted file mode 100644 index 737994a..0000000 --- a/hashcat-build-fixes.patch +++ /dev/null @@ -1,87 +0,0 @@ -From d4ebb8d60a87a638c20fa1de1b4560142a69feb5 Mon Sep 17 00:00:00 2001 -From: Carlos Rodriguez-Fernandez -Date: Wed, 29 Oct 2025 12:15:25 -0700 -Subject: [PATCH] fixes - ---- - src/Makefile | 17 +++++------------ - 1 file changed, 5 insertions(+), 12 deletions(-) - -diff --git a/src/Makefile b/src/Makefile -index 72986407c..49cbaf924 100644 ---- a/src/Makefile -+++ b/src/Makefile -@@ -52,7 +52,7 @@ endif - ## Makefile flags - ## - --MAKEFLAGS += -l -j 8 -rR --no-print-directory -+MAKEFLAGS += -l -rR --no-print-directory - - ifneq ($(findstring clean,$(MAKECMDGOALS)),) - MAKEFLAGS += -j 1 -@@ -167,8 +167,6 @@ DEPS_UNRAR_PATH := $(LIBRARY_DEV_ROOT_FOLDER) - endif - endif - --DEPS_SSE2NEON := deps/sse2neon -- - ## - ## Filenames for library and frontend - ## -@@ -275,10 +273,7 @@ endif - endif - - ifeq ($(DEBUG),0) --CFLAGS += -O2 --ifneq ($(UNAME),Darwin) --LFLAGS += -s --endif -+CFLAGS += -DNDEBUG - else - ifeq ($(DEBUG),1) - ifneq ($(UNAME),Darwin) -@@ -427,7 +422,6 @@ endif # Darwin - - ifeq ($(IS_ARM),1) - CFLAGS_NATIVE += -DSSE2NEON_SUPPRESS_WARNINGS --CFLAGS_NATIVE += -I$(DEPS_SSE2NEON) - endif - - ifeq ($(UNAME),CYGWIN) -@@ -589,7 +583,7 @@ endif - - .PHONY: install - ifeq ($(SHARED),1) --install: install_docs install_shared install_tools install_library install_library_dev install_tunings install_kernels install_modules install_bridges install_hashcat -+install: install_shared install_library install_library_dev install_tunings install_kernels install_modules install_bridges install_hashcat - else - install: install_docs install_shared install_tools install_tunings install_kernels install_modules install_bridges install_hashcat - endif -@@ -660,13 +654,13 @@ install_kernels: install_shared - install_modules: install_shared modules - $(INSTALL) -m 755 -d $(DESTDIR)$(SHARED_FOLDER)/modules - $(FIND) modules/ -mindepth 1 -type d -execdir $(INSTALL) -m 755 -d $(DESTDIR)$(SHARED_FOLDER)/modules/{} \; -- $(FIND) modules/ -mindepth 1 -type f -execdir $(INSTALL) -m 644 {} $(DESTDIR)$(SHARED_FOLDER)/modules/{} \; -+ $(FIND) modules/ -mindepth 1 -type f -execdir $(INSTALL) -m 755 {} $(DESTDIR)$(SHARED_FOLDER)/modules/{} \; - - .PHONY: install_bridges - install_bridges: install_shared bridges - $(INSTALL) -m 755 -d $(DESTDIR)$(SHARED_FOLDER)/bridges - $(FIND) bridges/ -mindepth 1 -type d -execdir $(INSTALL) -m 755 -d $(DESTDIR)$(SHARED_FOLDER)/bridges/{} \; -- $(FIND) bridges/ -mindepth 1 -type f -execdir $(INSTALL) -m 644 {} $(DESTDIR)$(SHARED_FOLDER)/bridges/{} \; -+ $(FIND) bridges/ -mindepth 1 -type f -execdir $(INSTALL) -m 755 {} $(DESTDIR)$(SHARED_FOLDER)/bridges/{} \; - - .PHONY: install_library - install_library: $(HASHCAT_LIBRARY) -@@ -892,7 +886,6 @@ endif - - ifeq ($(IS_ARM),1) - CFLAGS_CROSS_LINUX += -DSSE2NEON_SUPPRESS_WARNINGS --CFLAGS_CROSS_LINUX += -I$(DEPS_SSE2NEON) - endif - - ## --- -2.51.0 - diff --git a/hashcat.spec b/hashcat.spec index 3569ac3..472e603 100644 --- a/hashcat.spec +++ b/hashcat.spec @@ -1,62 +1,28 @@ -# hashcat require an ancient version of minizip. -# On Fedora we can use compatibility package, but -# on RHEL we must use bundled version. -%if 0%{?fedora} -%bcond_without zlib -%else -%bcond_with zlib -%endif - -%global makeflags PREFIX=%{_prefix} LIBRARY_FOLDER=%{_libdir} SHARED_ROOT_FOLDER=%{_libdir} DOCUMENT_FOLDER=%{_docdir}/hashcat-doc SHARED=1 USE_SYSTEM_OPENCL=1 USE_SYSTEM_XXHASH=1 ENABLE_UNRAR=0 MAINTAINER_MODE=1 - -%if %{with zlib} -%global makeflags %(echo %{makeflags} USE_SYSTEM_ZLIB=1) -%else -%global makeflags %(echo %{makeflags} USE_SYSTEM_ZLIB=0) -%endif - Name: hashcat -Version: 7.1.2 -Release: %autorelease - -License: MIT AND LicenseRef-Fedora-Public-Domain AND BSD-2-Clause AND Apache-2.0 -URL: https://github.com/%{name}/%{name} +Version: 5.1.0 +Release: 7%{?dist} Summary: Advanced password recovery utility -# The official upstream tarball contains some non-free components. -# We cannot use it on Fedora for legal reasons. -# Use ./make_tarball.sh to generate a new stripped tarball. -Source0: %{name}-%{version}-clean.tar.xz -Source1: make_tarball.sh -Patch0: %{name}-build-fixes.patch +License: MIT and Public Domain +URL: https://github.com/%{name}/%{name} +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +Patch0: 0001-Fedora-build-patches.patch + +BuildRequires: bash-completion BuildRequires: opencl-headers BuildRequires: xxhash-devel -%ifarch aarch64 -BuildRequires: sse2neon-devel -%endif - BuildRequires: gcc -BuildRequires: make -%if %{with zlib} -BuildRequires: zlib-ng-compat-devel -BuildRequires: minizip-compat-devel -%else -Provides: bundled(zlib) = 1.2.11 -Provides: bundled(minizip) = 1.2.11 +Requires: bash-completion +%if 0%{?fedora} +Recommends: mesa-libOpenCL%{?_isa} +Recommends: pocl%{?_isa} +Recommends: %{name}-doc = %{?epoch:%{epoch}:}%{version}-%{release} %endif -Provides: bundled(lzma-sdk) = 24.09 -Provides: bundled(scrypt-jane) -Provides: bundled(yescrypt) -Provides: bundled(libargon2) = 20190702 - -Recommends: %{name}-doc # Upstream does not support Big Endian architectures. -# Upstream source code does not longer build for ppc64le: https://bugzilla.redhat.com/show_bug.cgi?id=2407234 -# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval -ExcludeArch: %{ix86} ppc64 s390x ppc64le +ExcludeArch: ppc64 s390x %description Hashcat is the world's fastest and most advanced password recovery @@ -83,31 +49,24 @@ BuildArch: noarch %prep %autosetup -p1 -rm -rf deps/{OpenCL-Headers,xxHash,sse2neon} -%if %{with zlib} -rm -rf deps/zlib -%endif +rm -rf deps/{OpenCL-Headers,xxHash} sed -e 's/\.\/hashcat/hashcat/' -i *.sh chmod -x *.sh -rm -f modules/.lock %build %set_build_flags -%make_build %{makeflags} +%make_build PREFIX=%{_prefix} %install -%make_install %{makeflags} -ln -s lib%{name}.so.%{version} %{buildroot}%{_libdir}/lib%{name}.so -mkdir -p %{buildroot}%{_datadir}/bash-completion/completions -install -m 0744 -p extra/tab_completion/hashcat.sh %{buildroot}%{_datadir}/bash-completion/completions/%{name} -find %{buildroot}%{_libdir}/%{name}/ -name '.gitkeep' -type f -delete +%make_install PREFIX=%{_prefix} LIBRARY_FOLDER=%{_libdir} +ln -s lib%{name}.so.%{version} "%{buildroot}%{_libdir}/lib%{name}.so" %files %license docs/license.txt %doc README.md -%{_datadir}/bash-completion/ +%{_datadir}/bash-completion/completions/%{name} %{_libdir}/lib%{name}.so.%{version} -%{_libdir}/%{name}/ +%{_datadir}/%{name} %{_bindir}/%{name} %files devel @@ -115,8 +74,29 @@ find %{buildroot}%{_libdir}/%{name}/ -name '.gitkeep' -type f -delete %{_libdir}/lib%{name}.so %files doc -%doc docs/ charsets/ layouts/ masks/ rules/ +%doc docs/{changes,contact,credits,limits,performance,readme,rules,status_codes,team,user_manuals}.txt +%doc charsets/ layouts/ masks/ rules/ %doc example.dict example*.sh %changelog -%autochangelog +* Tue Feb 25 2020 Vitaly Zaitsev - 5.1.0-7 +- Allow to install without mesa-libOpenCL. +- Added pocl as a weak dependency on Fedora. + +* Wed Jan 29 2020 Fedora Release Engineering - 5.1.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 5.1.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Feb 24 2019 Vitaly Zaitsev - 5.1.0-4 +- Switched to regular build instead of debug. + +* Mon Feb 18 2019 Vitaly Zaitsev - 5.1.0-3 +- Fixed problem with dependencies on EPEL7. + +* Thu Feb 07 2019 Vitaly Zaitsev - 5.1.0-2 +- Moved documentation to a separate package. + +* Wed Feb 06 2019 Vitaly Zaitsev - 5.1.0-1 +- Initial SPEC release. diff --git a/make_tarball.sh b/make_tarball.sh deleted file mode 100755 index c2bafac..0000000 --- a/make_tarball.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/bash -set -e - -NAME="hashcat" -VERSION="$1" - -if [ -z "$VERSION" ] -then - echo "Usage: ./make_tarball.sh {version}" - exit 1 -fi - -TARBALL_DIR="$NAME-$VERSION" -TARBALL_ORIG="$NAME-$VERSION.tar.gz" -TARBALL_NEW="$NAME-$VERSION-clean.tar.xz" - -echo "Downloading upstream tarball..." -wget "https://github.com/hashcat/hashcat/archive/v$VERSION/$TARBALL_ORIG" -O "$TARBALL_ORIG" 2>/dev/null - -echo "Unpacking upstream tarball..." -tar -xf "$TARBALL_ORIG" - -echo "Removing non-free components..." -rm -rf "$TARBALL_DIR/deps/unrar" - -echo "Building a new tarball..." -tar -cJf "$TARBALL_NEW" "$TARBALL_DIR" - -echo "Performing cleanup..." -rm -f "$TARBALL_ORIG" -rm -rf "$TARBALL_DIR" - -echo "Done." diff --git a/plans/main.fmf b/plans/main.fmf deleted file mode 100644 index c1627f9..0000000 --- a/plans/main.fmf +++ /dev/null @@ -1,5 +0,0 @@ -summary: Basic smoke test -discover: - how: fmf -execute: - how: tmt diff --git a/sources b/sources index 776ee7a..5d0fd6d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (hashcat-7.1.2-clean.tar.xz) = 39d525d8f835227a2d9a081ce5b96eabebeff15f10707115f94339f9edd55228885dcd151ace9132e937147318d44447dbb53f8c05b3048f5cb24d620a4f00af +SHA512 (hashcat-5.1.0.tar.gz) = 90605c2bcd0ec275d2f6ec581899b95cdc320b1494613a19803192c8a08037a7829b3776ed42c58eb6551ec1a746f47f94ab5b273958ca74e0fc57315e209ece diff --git a/tests/core/main.fmf b/tests/core/main.fmf deleted file mode 100644 index 78884f4..0000000 --- a/tests/core/main.fmf +++ /dev/null @@ -1 +0,0 @@ -summary: hashcat cli smoke test diff --git a/tests/core/test.sh b/tests/core/test.sh deleted file mode 100755 index ffd8682..0000000 --- a/tests/core/test.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -rlJournalStart - rlPhaseStartTest - rlRun "hashcat --version" 0 "version info" - rlPhaseEnd - - rlPhaseStartTest - rlRun -s "hashcat --help" 0 "help" - rlAssertGrep "Usage" "$rlRun_LOG" - rlPhaseEnd - - rlPhaseStartTest - rlRun -s "hashcat --hash-info" 0 "hash info" - rlAssertGrep "Hash Info" "$rlRun_LOG" - rlPhaseEnd -rlJournalEnd diff --git a/tests/main.fmf b/tests/main.fmf deleted file mode 100644 index f61588b..0000000 --- a/tests/main.fmf +++ /dev/null @@ -1,4 +0,0 @@ -summary: hashcat smoke test -test: ./test.sh -framework: beakerlib -require: ["hashcat"] \ No newline at end of file