.gear/IMSProg.spec | 101 ++++++++++++++++++++++++++++ .gear/rules | 3 + .gear/tags/list | 1 + .gear/upstream/remotes | 3 + IMSProg_editor/CMakeLists.txt | 15 ++--- IMSProg_editor/main.cpp | 2 +- IMSProg_editor/other/IMSProg_editor.desktop | 7 +- IMSProg_programmer/CMakeLists.txt | 17 +++-- IMSProg_programmer/main.cpp | 2 +- IMSProg_programmer/mainwindow.cpp | 11 +-- IMSProg_programmer/other/IMSProg.desktop | 5 +- 11 files changed, 132 insertions(+), 35 deletions(-) diff --git a/.gear/IMSProg.spec b/.gear/IMSProg.spec new file mode 100644 index 0000000..0a33fd2 --- /dev/null +++ b/.gear/IMSProg.spec @@ -0,0 +1,101 @@ +# Unpackaged files in buildroot should terminate build +%define _unpackaged_files_terminate_build 1 + +Name: IMSProg +Version: 1.0.27 +Release: alt1 + +Summary: I2C, SPI and MicroWire EEPROM/Flash chip programmer for CH341a devices +Summary(ru_RU.UTF-8): I2C, SPI and MicroWire EEPROM/Flash программатор для CH341a устройств +License: GPL-3.0-or-later +Group: Engineering + +Url: https://github.com/bigbigmdm/IMSProg +Source: %name-%version.tar +Patch: %name-%version-%release.patch + +BuildRequires(pre): rpm-macros-cmake +BuildRequires: cmake gcc-c++ +BuildRequires: qt5-base-devel +BuildRequires: qt5-tools +BuildRequires: pkgconfig(libusb-1.0) + +%description +IMSProg - Linux IMSProg - I2C, SPI and MicroWire EEPROM/Flash chip programmer +for CH341a devices. The IMSProm is a free I2C EEPROM programmer tool for +CH341A device based on QhexEdit2 and modify SNANDer programmer. + +This is a GUI program used widget QhexEditor. For setting the SPI chip +parameters you can use the Detect button for reading chip parameters +(JEDEC information reading) or manually setting it. The I2C and MicroWire +EEPROM only manually selected. + +The chip database format is clone with EZP2019, EZP2020, EZP2023, Minpro I, +XP866+ programmers. You can edit the database use the EZP Chip data Editor. + +%description -l ru_RU.UTF-8 +IMSProg - Linux IMSProg - I2C, SPI and MicroWire EEPROM/Flash программатор +для CH341a устройств. IMSProm является бесплатной утилитой для +использования CH341A устройств в качестве программатора микросхем. Основана на +QhexEdit2 и модифицированном программаторе SNANDer. + +Графический интерфейс программы использует виджеты QhexEditor. Для настройки +параметров чипа SPI вы можете использовать кнопку «Поиск» для чтения параметров +чипа (считывание информации JEDEC) или настроить его вручную. I2C и MicroWire +EEPROM выбираются только вручную. + +Формат базы данных чипов клонируется программаторами EZP2019, EZP2020, EZP2023, +Minpro I, XP866+. Вы можете редактировать базу данных с помощью редактора данных +EZP Chip. + +%prep +%setup +%patch -p1 + +# update translations +lrelease-qt5 IMSProg_editor/language/*.ts +lrelease-qt5 IMSProg_programmer/language/*.ts + +%build +pushd IMSProg_editor +%cmake +%cmake_build +popd + +pushd IMSProg_programmer +%cmake +%cmake_build +popd + +%install +pushd IMSProg_editor +%cmake_install +popd + +pushd IMSProg_programmer +%cmake_install +popd + +# move udev rules to %_udevrulesdir +mkdir -p %buildroot%_udevrulesdir +mv %buildroot%_sysconfdir/udev/rules.d/99-CH341.rules \ + %buildroot%_udevrulesdir/99-CH341.rules + +# rename README +cp IMSProg_editor/README.md IMSProg_editor.md +cp IMSProg_programmer/README.md IMSProg_programmer.md + +%files +%doc README.md IMSProg_editor.md IMSProg_programmer.md +%_bindir/%name +%_bindir/%{name}_editor +%_datadir/%name +%_desktopdir/%name.desktop +%_desktopdir/%{name}_editor.desktop +%_udevrulesdir/99-CH341.rules +%_iconsdir/hicolor/64x64/apps/%{name}_editor.png +%_iconsdir/hicolor/64x64/apps/%name.png + +%changelog +* Fri Oct 13 2023 Anton Midyukov 1.0.27-alt1 +- initial build (Closes: 47993) diff --git a/.gear/rules b/.gear/rules new file mode 100644 index 0000000..05e5dc2 --- /dev/null +++ b/.gear/rules @@ -0,0 +1,3 @@ +tar: upstream:. exclude=release exclude=img +diff: upstream:. . exclude=release exclude=img +spec: .gear/IMSProg.spec diff --git a/.gear/tags/list b/.gear/tags/list new file mode 100644 index 0000000..57c5b79 --- /dev/null +++ b/.gear/tags/list @@ -0,0 +1 @@ +5699c8c134d175bbadbdb0c88ac495b6546fb2dc upstream diff --git a/.gear/upstream/remotes b/.gear/upstream/remotes new file mode 100644 index 0000000..3f0dc3e --- /dev/null +++ b/.gear/upstream/remotes @@ -0,0 +1,3 @@ +[remote "upstream"] + url = https://github.com/bigbigmdm/IMSProg + fetch = +refs/heads/*:refs/remotes/upstream/* diff --git a/IMSProg_editor/CMakeLists.txt b/IMSProg_editor/CMakeLists.txt index 426fb2b..54163cd 100644 --- a/IMSProg_editor/CMakeLists.txt +++ b/IMSProg_editor/CMakeLists.txt @@ -32,13 +32,12 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(${PROJECT_NAME} Qt5::Core) target_link_libraries(${PROJECT_NAME} Qt5::Widgets) -install(TARGETS ${PROJECT_NAME} DESTINATION /opt/IMSProg) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/other/IMSProg_editor.desktop" DESTINATION /opt/IMSProg) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/other/IMSProg_editor.desktop" DESTINATION /usr/share/applications) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/img/chipEdit64.png" DESTINATION /opt/IMSProg) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipEditor_ru_RU.qm" DESTINATION /opt/IMSProg/language) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipEditor_de_DE.qm" DESTINATION /opt/IMSProg/language) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipEditor_es_ES.qm" DESTINATION /opt/IMSProg/language) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipEditor_zn_CH.qm" DESTINATION /opt/IMSProg/language) +install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/other/IMSProg_editor.desktop" DESTINATION ${SHARE_INSTALL_PREFIX}/applications) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/img/chipEdit64.png" DESTINATION ${SHARE_INSTALL_PREFIX}/icons/hicolor/64x64/apps RENAME IMSProg_editor.png) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipEditor_ru_RU.qm" DESTINATION ${SHARE_INSTALL_PREFIX}/IMSProg/language) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipEditor_de_DE.qm" DESTINATION ${SHARE_INSTALL_PREFIX}/IMSProg/language) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipEditor_es_ES.qm" DESTINATION ${SHARE_INSTALL_PREFIX}/IMSProg/language) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipEditor_zn_CH.qm" DESTINATION ${SHARE_INSTALL_PREFIX}/IMSProg/language) diff --git a/IMSProg_editor/main.cpp b/IMSProg_editor/main.cpp index d05d6ec..25c6d7d 100644 --- a/IMSProg_editor/main.cpp +++ b/IMSProg_editor/main.cpp @@ -8,7 +8,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); QTranslator translator; QString translateName = "chipEditor_" + QLocale::system().name(); - if(translator.load(translateName, "language/")) a.installTranslator(&translator); + if(translator.load(translateName, "/usr/share/IMSProg/language/")) a.installTranslator(&translator); a.installTranslator(&translator); MainWindow w; w.show(); diff --git a/IMSProg_editor/other/IMSProg_editor.desktop b/IMSProg_editor/other/IMSProg_editor.desktop index 6e9c120..6ac235e 100644 --- a/IMSProg_editor/other/IMSProg_editor.desktop +++ b/IMSProg_editor/other/IMSProg_editor.desktop @@ -2,10 +2,9 @@ Version=1.0 Type=Application Name=IMSProg_editor -Comment=Chip Database Editor -Exec=/opt/IMSProg/IMSProg_editor -Icon=/opt/IMSProg/chipEdit64.png -Path=/opt/IMSProg +Comment=Chip Database Editor +Exec=IMSProg_editor +Icon=IMSProg_editor Terminal=false Encoding=UTF-8 Categories=Electronics;Development; diff --git a/IMSProg_programmer/CMakeLists.txt b/IMSProg_programmer/CMakeLists.txt index 6eb9b00..5f6a0ed 100644 --- a/IMSProg_programmer/CMakeLists.txt +++ b/IMSProg_programmer/CMakeLists.txt @@ -82,13 +82,12 @@ target_link_libraries(${PROJECT_NAME} Qt5::Core) #target_link_libraries(${PROJECT_NAME} Qt5::Widgets) target_link_libraries(${PROJECT_NAME} Qt5::Widgets ${LibUSB_LIBRARIES}) -install(TARGETS ${PROJECT_NAME} DESTINATION /opt/IMSProg) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/other/IMSProg.desktop" DESTINATION /opt/IMSProg) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/other/IMSProg.desktop" DESTINATION /usr/share/applications) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/img/write64.png" DESTINATION /opt/IMSProg) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/database/IMSProg.Dat" DESTINATION /opt/IMSProg) +install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/other/IMSProg.desktop" DESTINATION ${SHARE_INSTALL_PREFIX}/applications) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/img/write64.png" DESTINATION ${SHARE_INSTALL_PREFIX}/icons/hicolor/64x64/apps RENAME IMSProg.png) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/database/IMSProg.Dat" DESTINATION ${SHARE_INSTALL_PREFIX}/IMSProg) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/other/99-CH341.rules" DESTINATION /etc/udev/rules.d) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipProgrammer_ru_RU.qm" DESTINATION /opt/IMSProg/language) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipProgrammer_es_ES.qm" DESTINATION /opt/IMSProg/language) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipProgrammer_de_DE.qm" DESTINATION /opt/IMSProg/language) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipProgrammer_zn_CH.qm" DESTINATION /opt/IMSProg/language) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipProgrammer_ru_RU.qm" DESTINATION ${SHARE_INSTALL_PREFIX}/IMSProg/language) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipProgrammer_es_ES.qm" DESTINATION ${SHARE_INSTALL_PREFIX}/IMSProg/language) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipProgrammer_de_DE.qm" DESTINATION ${SHARE_INSTALL_PREFIX}/IMSProg/language) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/language/chipProgrammer_zn_CH.qm" DESTINATION ${SHARE_INSTALL_PREFIX}/IMSProg/language) diff --git a/IMSProg_programmer/main.cpp b/IMSProg_programmer/main.cpp index 4addf5c..c5db922 100644 --- a/IMSProg_programmer/main.cpp +++ b/IMSProg_programmer/main.cpp @@ -25,7 +25,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); QTranslator translator; QString translateName = "chipProgrammer_" + QLocale::system().name(); - if(translator.load(translateName, "language/")) a.installTranslator(&translator); + if(translator.load(translateName, "/usr/share/IMSProg/language/")) a.installTranslator(&translator); a.installTranslator(&translator); MainWindow w; w.show(); diff --git a/IMSProg_programmer/mainwindow.cpp b/IMSProg_programmer/mainwindow.cpp index fc87a7d..084be24 100644 --- a/IMSProg_programmer/mainwindow.cpp +++ b/IMSProg_programmer/mainwindow.cpp @@ -126,7 +126,7 @@ MainWindow::MainWindow(QWidget *parent) : hexEdit->setHexFontColor(defaultTextColor); //opening chip database file ui->statusBar->showMessage(tr("Opening DAT file")); - QFile datfile("IMSProg.Dat"); + QFile datfile("/usr/share/IMSProg/IMSProg.Dat"); QByteArray dataChips; if (!datfile.open(QIODevice::ReadOnly)) { @@ -1223,14 +1223,7 @@ void MainWindow::on_actionChecksum_calculate_triggered() void MainWindow::on_actionEdit_chips_Database_triggered() { - if(QFileInfo::exists("IMSProg_editor") && !QDir("IMSProg_editor").exists()){ - //The file exists and is not a folder - QProcess::execute("IMSProg_editor"); - } - else { - //The file doesn't exist, either the path doesn't exist or is the path of a folder - QMessageBox::about(this, tr("Error"), tr("Not found file `IMSProg_editor`!")); - } + QProcess::execute("IMSProg_editor"); } void MainWindow::doNotDisturb() diff --git a/IMSProg_programmer/other/IMSProg.desktop b/IMSProg_programmer/other/IMSProg.desktop index df1a761..d192d0b 100644 --- a/IMSProg_programmer/other/IMSProg.desktop +++ b/IMSProg_programmer/other/IMSProg.desktop @@ -2,9 +2,8 @@ Version=1.0 Type=Application Name=IMSProg -Icon=/opt/IMSProg/write64.png -Exec=/opt/IMSProg/IMSProg -Path=/opt/IMSProg/ +Icon=IMSProg +Exec=IMSProg NoDisplay=false Categories=Electronics;Development; StartupNotify=true