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

version 1.49 unbuildable on linux #470

Open
wdoekes opened this issue Apr 2, 2024 · 7 comments
Open

version 1.49 unbuildable on linux #470

wdoekes opened this issue Apr 2, 2024 · 7 comments

Comments

@wdoekes
Copy link

wdoekes commented Apr 2, 2024

Many issues with 1.49. Was this release intentional?

  • 1.49 is a lot higher than 1.20.0
  • 1.49 does not have a 1.49.0 patch version
  • #define LOGX is done twice
  • OPAL_DiskInfo is now DTA_DEVICE_INFO
  • void DtaDevOS::identify should be bool ...
@RossiSoftLtd
Copy link

Just found out the same issue. Wondering the same as @wdoekes

Thanks

@cranderson
Copy link

g++ -DHAVE_CONFIG_H -I. -Wall -Werror -std=c++11 -I./linux -I./Common -I./Common/pbkdf2 -I./linux -I./LinuxPBA -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -c -o LinuxPBA/UnlockSEDs.o LinuxPBA/UnlockSEDs.cpp
make[1]: Leaving directory '/builddir/build/BUILD/sedutil-1.49'
In file included from ./linux/os.h:28,
from LinuxPBA/UnlockSEDs.cpp:20:
./Common/log.h:338:9: error: "LOGX" redefined [-Werror]
338 | #define LOGX(level)
| ^~~~
./Common/log.h:330:9: note: this is the location of the previous definition
330 | #define LOGX(level)
| ^~~~
In file included from LinuxPBA/UnlockSEDs.cpp:22:
./linux/DtaDevOS.h:58:19: error: ‘OPAL_DiskInfo’ has not been declared
58 | void identify(OPAL_DiskInfo& disk_info);
| ^~~~~~~~~~~~~
./linux/DtaDevOS.h:60:24: error: conflicting return type specified for ‘virtual long long unsigned int DtaDevOS::getSize()’
60 | unsigned long long getSize();
| ^~~~~~~
In file included from ./linux/DtaDevOS.h:21:
./Common/DtaDev.h:134:36: note: overridden function is ‘virtual const long long unsigned int DtaDev::getSize()’
134 | virtual const unsigned long long getSize() = 0;
| ^~~~~~~
LinuxPBA/UnlockSEDs.cpp: In function ‘uint8_t UnlockSEDs(char*)’:
LinuxPBA/UnlockSEDs.cpp:34:39: error: ‘getDtaDevOS’ is not a member of ‘DtaDevOS’
34 | if (DTAERROR_SUCCESS == DtaDevOS::getDtaDevOS(devref, &d, true) && d!=NULL) {
| ^~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[1]: *** [Makefile:782: LinuxPBA/UnlockSEDs.o] Error 1

@vt-alt
Copy link

vt-alt commented Aug 4, 2024

Can authors please explain meaning of new versioning scheme?

So far, no Linux distribution builds 1.49.x https://repology.org/project/sedutil/versions perhaps the maintainers don't understand what this tag means. And distributions are most common way for end users to get the software. Should distributions release 1.49.4 instead of 1.20.0.

Also, can you please explain meaning of linux_works tag? Is it work in progress or usable source state?

Curiously, both linux_works and 1.49.4 exist only in feature/windows-opensource branch, not in the master branch (which is with 1.20.0), so this may be a bit confusing for people.

@r0m30
Copy link
Contributor

r0m30 commented Aug 4, 2024

@youk I don't know if I still have access to the repo. I haven't checked since the first of the year.

@scottcmarks
Copy link

This was on a feature branch, so ymmv. Those tags are now on the develop branch, still entirely tentative.
Insofar as not building on linux, afaik the usual

cd ~/sedutil
autoreconf -i
./configure --enable-silent-rules
make all

with optional

sudo make install

has been percolating for me quite reliably. Linux, libc etc versions on request as I update them and rebuild several times a day.

The idea of a 1.49 version is that it is just under a 1.5 version, which in turn is halfway to a 2.0 version, which is what I am heading toward. The idea, which seems to be panning out, is that by creating an explicit DtaDrive layer adhering to the standards for Ata (HD), Sata (SAT passthrough), Scsi ("direct" Scsi or SAS), and NVMe there is almost no need for separate linux, etc. (OS-specific) subfolders full of duplicative code. (Although it might be time to retire HD Ata code, the non-SCSI-intermediated NVMe code presents essentially the same problems, so two birds with one stone.). Instead, each will contain the implementation of a singleton of its subclass of DtaOS (e.g. DtaLinux) with its OS-specific implementation of eight or so methods, e.g. PerformSCSICommand, which itself takes standard-set (OS-independent) parameters. The 1.5 version is just that; in the 2.0 architecture, the interface to DtaDrive and its kin will be simplified to identify, IF_SEND, and IF_RECV, and the "command-writing" code of the many utility functions will be trimmed down by using the new closure-based wrappers for the common cases.

vt-alt added a commit to vt-alt/ktools that referenced this issue Aug 16, 2024
Authors mis-invented concept of branches using tags.

  sedutil:           1f13670b010dceec38bc95d7a7d223a8709864e6                 refs/tags/linux_works    origin
  sedutil:           1f13670b010dceec38bc95d7a7d223a8709864e6                 refs/tags/windows_works  origin
  sedutil:           9106b4994ea1cf992f374e91af2e5a8d9bf5b466                 refs/tags/macos_works    origin

Link: Drive-Trust-Alliance/sedutil#470 (comment)
Signed-off-by: Vitaly Chikunov <[email protected]>
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

No branches or pull requests

7 participants
@wdoekes @cranderson @r0m30 @scottcmarks @RossiSoftLtd @vt-alt and others