FedoraForum.org - Fedora Support Forums and Community
Page 5 of 8 FirstFirst ... 3 4 5 6 7 ... LastLast
Results 61 to 75 of 110
  1. #61
    Join Date
    May 2011
    Location
    Confoederatio Helvetica (Swissh)
    Age
    37
    Posts
    4,277

    Re: VICI: A Software Development Project

    @ Isatenstein: Attachments been borked for quite some time (about +/- 1 year)
    @ Occrato : One should not adjust a project to a certain IDE (eclipse) but to the core (auto-)tools.
    Not everyone uses eclipse to code, nor to build their projects.

    When i try to build, it fails on gth (what is that?!)
    Code:
    === configuring in gth (/home/sea/net/dls/vici-0.2/gth)
    configure: running /bin/sh ./configure --disable-option-checking '--prefix=/home/sea/tmp'  --cache-file=/dev/null --srcdir=.
    checking for g++... g++
    checking whether the C++ compiler works... yes
    checking for C++ compiler default output file name... a.out
    checking for suffix of executables... 
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C++ compiler... yes
    checking whether g++ accepts -g... yes
    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    checking target system type... x86_64-unknown-linux-gnu
    checking QT4.8 directory... /usr
    checking for gcc... gcc
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking how to run the C preprocessor... gcc -E
    checking for X... libraries , headers 
    configure: Linux detected
    checking for gethostbyname... yes
    checking for connect... yes
    checking for remove... yes
    checking for shmat... yes
    checking for IceConnectionNumber in -lICE... yes
    configure: -Wl,-rpath,/usr/lib -L/usr/lib -lQtGui -lQtOpenGL -lQtCore  -lX11 -lXext -lXmu -lXt -lXi  -lGLU -lGL -lpthread
    configure: -I/usr/include -I/usr/include/QtGui -I/usr/include/QtCore -I/usr/include/QtOpenGL  -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB
    checking does moc work?... yes
    checking can I compile moc_myqt.cpp?... configure: error: couldn't compile moc_myqt.cpp
    configure: error: ./configure failed for gth
    
    1 ~/net/dls/vici-0.2 $ pacman -Ss gth
    extra/ffmpegthumbnailer 2.1.0-1
        Lightweight video thumbnailer that can be used by file managers.
    extra/ffmpegthumbs 15.12.1-1 (kde-applications kdemultimedia)
        FFmpeg-based thumbnail creator for video files
    extra/gthumb 3.4.1-3
        Image browser and viewer for the GNOME Desktop
    community/python-reportlab 3.2.0-3
        A proven industry-strength PDF generating solution
    community/python2-reportlab 3.2.0-3
        A proven industry-strength PDF generating solution
    community/spring-1944 2.0-1
        A WWII themed game with four fully functional sides (US, Germany, USSR, Britain), period-accurate units and strengths
    0 ~/net/dls/vici-0.2 $
    My 2 cents
    Hope this helps

    EDIT:
    GTH fails as well when beeing it its sub dir, and calling ./configure from there - same error message:
    Code:
    checking can I compile moc_myqt.cpp?... configure: error: couldn't compile moc_myqt.cpp
    EDIT2:
    'cfi' builds well.
    No change to when i do manually or follow the readme to the letter, gth always fails...
    Last edited by sea; 1st February 2016 at 03:04 PM.
    EFI Cheatsheet :: http://forums.fedoraforum.org/showthread.php?t=298546
    Video Handler Script (VHS) (mass re-encode videos, screenrecorder, console music/webradio player, ...) :: http://forums.fedoraforum.org/showthread.php?t=299182
    Windows 8+ & Fedora 20+ Dualboot :: http://forums.fedoraforum.org/showthread.php?t=298161

  2. #62
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    2,682

    Re: VICI: A Software Development Project

    @sea Thanks for having a go at the build.
    The gth module is the GUI Test Harness - it provides a mechanism for automatically animating GUI programs and testing their internal state. It allows for automatic testing of completed GUI programs. This is obviously going to be important for VICI.

    The actual error concerns the Qt code generator, moc, or more exactly the code that it generated.
    If you could have a look at the file config.log - look for "checking can I compile moc_myqt.cpp?" and let me know what is on the next few lines I might be able to resolve the problem.

    My guess, is that its something to do with me using Qt4, while Fedora23 has Qt5 as its default - I may need to add some compiler options to force Qt4 compatibility.

  3. #63
    Join Date
    May 2011
    Location
    Confoederatio Helvetica (Swissh)
    Age
    37
    Posts
    4,277

    Re: VICI: A Software Development Project

    Or state so in the README
    Might be a hint to go for QT5 already too, IF that is the cause. (pun intended)

    Code:
    config.status:847: creating Makefile
    config.status:847: creating config.h
    config.status:1061: executing depfiles commands
    configure:5374: === configuring in cfi (/home/sea/net/dls/vici-0.2/build/cfi)
    configure:5437: running /bin/sh ../../cfi/configure --disable-option-checking '--prefix=/home/sea/net/dls/vici-0.2'  --cache-file=/dev/null --srcdir=../../cfi
    configure:5374: === configuring in gth (/home/sea/net/dls/vici-0.2/build/gth)
    configure:5437: running /bin/sh ../../gth/configure --disable-option-checking '--prefix=/home/sea/net/dls/vici-0.2'  --cache-file=/dev/null --srcdir=../../gth
    configure:5442: error: ../../gth/configure failed for gth
    That is within: ~/net/dls/vici-0.2/build, as according to README.
    EFI Cheatsheet :: http://forums.fedoraforum.org/showthread.php?t=298546
    Video Handler Script (VHS) (mass re-encode videos, screenrecorder, console music/webradio player, ...) :: http://forums.fedoraforum.org/showthread.php?t=299182
    Windows 8+ & Fedora 20+ Dualboot :: http://forums.fedoraforum.org/showthread.php?t=298161

  4. #64
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    2,682

    Re: VICI: A Software Development Project

    @sea, thanks again for your interest.
    I was wondering if you could report the contents of vici-02/build/gth/config.log for a few lines after "checking can I compile moc_myqt.cpp?" (My apologies for not noticing that there was config.log in each sub-project.)

    EDIT: Its probably not going to build using Qt5 - there are version checks that will fail.
    I will amend the SourceForge readme files to indicate it is Qt4 only for now.

    EDIT 2: In due course I am going to have to support multiple versions of Qt, so my plan is to set up a /opt directory for multiple Qt versions and then adjust VICI's configure scripts to set up some variables for the code generators, libraries and compile flags. I expect the code will also have some #ifdef controls since I believe there has been some reorganisation of header files.
    Last edited by ocratato; 2nd February 2016 at 11:07 PM.

  5. #65
    Join Date
    May 2011
    Location
    Confoederatio Helvetica (Swissh)
    Age
    37
    Posts
    4,277

    Re: VICI: A Software Development Project

    Code:
    grep "checking can I compile moc_myqt" -A50 $(find) 2>/dev/zero | tail -51
    
    ./build/gth/config.log:configure:4366: checking can I compile moc_myqt.cpp?
    ./build/gth/config.log-configure:4369: g++ -c -g -O2 -I/usr/include -I/usr/include/QtGui -I/usr/include/QtCore -I/usr/include/QtOpenGL  -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -o moc_myqt.o moc_myqt.cpp
    ./build/gth/config.log-In file included from moc_myqt.cpp:9:0:
    ./build/gth/config.log-myqt.h:1:19: fatal error: QObject: No such file or directory
    ./build/gth/config.log-compilation terminated.
    ./build/gth/config.log-configure:4372: $? = 1
    ./build/gth/config.log-configure:4375: error: couldn't compile moc_myqt.cpp
    Code:
    ./build/gth/config.log-## ---------------- ##
    ./build/gth/config.log-## Cache variables. ##
    ./build/gth/config.log-## ---------------- ##
    ./build/gth/config.log-
    ./build/gth/config.log-ac_cv_build=x86_64-unknown-linux-gnu
    ./build/gth/config.log-ac_cv_c_compiler_gnu=yes
    ./build/gth/config.log-ac_cv_cxx_compiler_gnu=yes
    ./build/gth/config.log-ac_cv_env_CCC_set=
    ./build/gth/config.log-ac_cv_env_CCC_value=
    ./build/gth/config.log-ac_cv_env_CC_set=
    ./build/gth/config.log-ac_cv_env_CC_value=
    ./build/gth/config.log-ac_cv_env_CFLAGS_set=
    ./build/gth/config.log-ac_cv_env_CFLAGS_value=
    ./build/gth/config.log-ac_cv_env_CPPFLAGS_set=
    ./build/gth/config.log-ac_cv_env_CPPFLAGS_value=
    ./build/gth/config.log-ac_cv_env_CPP_set=
    ./build/gth/config.log-ac_cv_env_CPP_value=
    ./build/gth/config.log-ac_cv_env_CXXCPP_set=
    ./build/gth/config.log-ac_cv_env_CXXCPP_value=
    ./build/gth/config.log-ac_cv_env_CXXFLAGS_set=
    ./build/gth/config.log-ac_cv_env_CXXFLAGS_value=
    ./build/gth/config.log-ac_cv_env_CXX_set=
    ./build/gth/config.log-ac_cv_env_CXX_value=
    ./build/gth/config.log-ac_cv_env_LDFLAGS_set=
    ./build/gth/config.log-ac_cv_env_LDFLAGS_value=
    ./build/gth/config.log-ac_cv_env_LIBS_set=
    ./build/gth/config.log-ac_cv_env_LIBS_value=
    ./build/gth/config.log-ac_cv_env_XMKMF_set=
    ./build/gth/config.log-ac_cv_env_XMKMF_value=
    ./build/gth/config.log-ac_cv_env_build_alias_set=
    ./build/gth/config.log-ac_cv_env_build_alias_value=
    ./build/gth/config.log-ac_cv_env_host_alias_set=
    ./build/gth/config.log-ac_cv_env_host_alias_value=
    ./build/gth/config.log-ac_cv_env_target_alias_set=
    ./build/gth/config.log-ac_cv_env_target_alias_value=
    ./build/gth/config.log-ac_cv_func_connect=yes
    ./build/gth/config.log-ac_cv_func_gethostbyname=yes
    ./build/gth/config.log-ac_cv_func_remove=yes
    ./build/gth/config.log-ac_cv_func_shmat=yes
    ./build/gth/config.log-ac_cv_have_x='have_x=yes	ac_x_includes='\'''\''	ac_x_libraries='\'''\'''
    ./build/gth/config.log-ac_cv_host=x86_64-unknown-linux-gnu
    ./build/gth/config.log-ac_cv_lib_ICE_IceConnectionNumber=yes
    ./build/gth/config.log-ac_cv_objext=o
    Code:
    0 ~/net/dls/vici-0.2 $ ls /usr/include/[qQ]*
    /usr/include/qt:
    QtConcurrent  QtCore  QtDBus  QtGui  QtNetwork  QtOpenGL  QtOpenGLExtensions  QtPlatformHeaders  QtPlatformSupport  QtPrintSupport  QtSql  QtTest  QtWidgets  QtXml
    
    /usr/include/qt4:
    KDE     Qt          QtCore  QtDeclarative  QtGui   QtMultimedia  QtOpenGL  QtScriptTools  QtSvg   QtUiTools  QtXml
    phonon  Qt3Support  QtDBus  QtDesigner     QtHelp  QtNetwork     QtScript  QtSql          QtTest  QtWebKit   QtXmlPatterns
    
    /usr/include/qt4-32:
    Qt          QtCore  QtDeclarative  QtGui   QtMultimedia  QtOpenGL  QtScriptTools  QtSvg   QtUiTools  QtXml
    Qt3Support  QtDBus  QtDesigner     QtHelp  QtNetwork     QtScript  QtSql          QtTest  QtWebKit   QtXmlPatterns
    
    /usr/include/quvi-0.9:
    quvi  quvi.h
    
    /usr/include/QZeitgeist:
    DataModel           datasourceregistry.h  interpretation.h  log.h     logmodel.h     manifestation.h  monitor.h   qzeitgeist.h          refreshjob.h
    DataSourceRegistry  Interpretation        Log               LogModel  Manifestation  Monitor          QZeitgeist  qzeitgeist_version.h
    This is an Arch installation, not Fedora.
    hth
    Last edited by sea; 3rd February 2016 at 06:18 PM. Reason: EDIT: figured the data, supplied more info
    EFI Cheatsheet :: http://forums.fedoraforum.org/showthread.php?t=298546
    Video Handler Script (VHS) (mass re-encode videos, screenrecorder, console music/webradio player, ...) :: http://forums.fedoraforum.org/showthread.php?t=299182
    Windows 8+ & Fedora 20+ Dualboot :: http://forums.fedoraforum.org/showthread.php?t=298161

  6. #66
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    2,682

    Re: VICI: A Software Development Project

    @sea, thanks for the additional info.
    The difference appears to be that the installed location of Qt is different.
    As mentioned in my previous post, I will need to add a configure option so that the location of Qt can be specified.
    Thanks again for trying.

  7. #67
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    2,682

    Re: VICI: A Software Development Project

    Test Driven Development

    The plan for VICI is to use a TDD approach.
    Note that for this to be done properly, you have to have a design to work from. You cannot just have a test harness based on some ideas as to what you think the program will do - my term for that approach is "Debugging into Existence". What happens is that such programs fail as soon as some condition occurs that was not in the test suite.

    My approach is to start with the design prototype - which is a working example of the design - and copy the header files into the project. It is probably a good idea to review the class declarations to fix any obvious short-comings. The design prototype may work, but its not necessarily robust.

    I then create stub versions of each function and, while using the design prototype as a guide, add comments describing what the function should do and how it is to be done. You will probably find a few things in the prototype that can be improved - I add them as TODO comments so they are not overlooked later.

    The next step is to create the unit test harness to put the functions through their paces. You can use both the comments in the stubs and the design prototype as the guide to building the test harness. You should aim to get good coverage of the paths through the code as well as check boundary and edge conditions.

    Where possible you should also test the failure paths as well, though this can be difficult to implement. One possible approach is to test the failure paths during development (eg reverse boolean tests) and not worry about them for the final unit tests.

    Next we add the details for each method. Obviously, pasting in the code from the design prototype is the quick way to do this, but you need to ensure that the code is robust - e.g. checking the return code from system calls and never assuming a pointer won't be null. You should run the test harness frequently during this phase to ensure your code is working correctly.

    The last step is to add the improvements noted in the TODO comments. You can now use the test harness to confirm that the improvements don't break the design.

  8. #68
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    2,682

    Re: VICI: A Software Development Project

    Automated Configuration

    One of the features of VICI is that it consists of 13 application modules (plus a bit of infrastructure). The aim was to demonstrate how to build a large project from several smaller projects that can be independently developed. Since the modules will obviously have dependencies on each other we need some way of building the modules that doesn't require the completed versions of all the other modules to exist.

    The first step was to produce a library containing a stubbed version of the facade of each module. This has just enough code to satisfy the compiler, though the functions will usually return NULL pointers, zero or false results.

    The second step is to produce test harness versions of the modules that interface to the module we are currently building. The test harness for a module uses these local versions of the surrounding modules to supply test values and check the outputs from the module under test. In total there will probably end up being several dozen of these test modules.

    The final step is the actual implementation version of each module.

    What we don't want is for the code in the modules to have to be changed as we change from stub to test to implementation - that would just lead to test code being left in the production version. The standard solution to that problem is to use factory classes to create the modules. These are very simple objects that just have one method that returns a new instance of the object. We can thus hide the explicit type of the module in the factory.

    However, we still have to tell the factories which version we want. We could use various flags and other parameters to control the factories, but a simpler solution is to just have multiple different types of factories, each of which instantiates the appropriate version of the module. This may seem like we have come full circle back to where we started, but we have made a significant simplification: While the modules are all very different from each other, the factories are quite similar.

    We still need to hide the type of module, and since we now have a factory for each type, we again need a factory, but this time a factory for making factories - I call it the FactoryFactory class. Inside this I have an associative array that maps a module identifier (an enum) to the factory for that module. During the testing phase of development this is first populated with the factories for the stub version of the modules. A test harness program can then register its test harness version of modules, which would replace the stub version.

    The problem is the final implementation version. The FactoryFactory cannot directly reference these since, for now, most of them don't even exist. Even when we have completed the coding, this will still be an issue since each of the three VICI programs will use a different subset of the modules. We don't want to load up libraries that are not going to be used. The solution is to use the system function dlsym to search for a module specific function by name - if it finds it, the function is used to create the factory - if not its just ignored. Hence the FactoryFactory first does a search for the implementation version of the factories, and then the test harnesses can overwrite them with test harness versions if they need to.

    The result is a means of dynamically configuring the modules at run time that handles missing libraries.

  9. #69
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    2,682

    Re: VICI: A Software Development Project

    Phase 3 Completed

    I have just published the latest release of VICI.

    https://sourceforge.net/projects/ocr...urce=directory

    This one has much improved support for Qt, and will even work with either Qt4 or Qt5, and you can specify Qt's install location.

    There is still not much for a user to actually use yet, but there is a little demo program called vici-syntax that you might try. To use it you enter some EBNF into the left panel and press the Parse button. I used the following specification for the cal program's options as my test data:

    Code:
    Options ::= [ Period ] [ DayOption ] [ Julian ] [ Date ] { "filename" } ;
    Date ::= [ [ [ Day ] Month ] Year ] ;
    Period ::= Single | Triple | Annual ;
    Single ::= "-1" | "--one" ;
    Triple ::= "-3" | "--three" ;
    Annual ::= "-y" | "--year" ;
    DayOption ::= Sunday | Monday ;
    Sunday ::= "-s" | "--sunday" ;
    Monday ::= "-m" | "--monday" ;
    Julian ::= "-j" | "--julian" ;
    Day ::= "1" ... "31" ;
    Month ::= "1" ... "12" ;
    Year ::= "1" ... "9999" ;
    (The { "filename" } is not really part of cal's options but I wanted to show repetition.)

  10. #70
    Join Date
    Jun 2005
    Location
    Montreal, Que, Canada
    Posts
    4,490

    Re: VICI: A Software Development Project

    Hi Ocratato

    Period ::=Single | Triple | Semi | Annual ; //consider Single| trimestre| sixmonthly| annually
    Dates https://en.wikipedia.org/wiki/Date_format_by_country
    Weekbegins: Sunday|Monday
    Consider adding weekno: (1..53) //manufacturing calendars use weekno typically 1 to nnnn (max project weeks)
    Leslie in Montreal

    Interesting web sites list
    http://forums.fedoraforum.org/showth...40#post1697840

  11. #71
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    2,682

    Re: VICI: A Software Development Project

    Quote Originally Posted by lsatenstein
    Hi Ocratato

    Period ::=Single | Triple | Semi | Annual ; //consider Single| trimestre| sixmonthly| annually
    Dates https://en.wikipedia.org/wiki/Date_format_by_country
    Weekbegins: Sunday|Monday
    Consider adding weekno: (1..53) //manufacturing calendars use weekno typically 1 to nnnn (max project weeks)
    I think you may be misunderstanding.
    The aim is to describe the syntax of the options for the existing programs, cal in this case.

    The intention is to provide something a little more visual than a man page, though I intend to make them visible as well.

  12. #72
    Join Date
    Mar 2016
    Location
    home
    Posts
    5

    Re: VICI: A Software Development Project

    hi, awesome idea, i am a student of computer science and i think this thread is only for me, because i am facing the same problem, i want someone to guide me or instruct me that how can 1 thing be made ideally, and this will become a night mare for computer science students like me.

    WOOCommerce Bulk SMS | WOOCommerce Notifications | WOOcommerce Plugin Notification
    Last edited by mynamebilal; 18th March 2016 at 05:50 AM.

  13. #73
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    2,682

    Re: VICI: A Software Development Project

    Quote Originally Posted by mynamebilal
    hi, awesome idea, i am a student of computer science and i think this thread is only for me, because i am facing the same problem, i want someone to guide me or instruct me that how can 1 thing be made ideally, and this will become a night mare for computer science students like me.

    Thanks & Good Luck !
    Thanks for the thoughts.
    Yes, this thread is intended to demonstrate what is involved in a complete non-trivial project, which is something you probably won't get to see during your studies as there is not normally sufficient time in a course.

    [Unfortunately the attachments in the thread posts don't seem to work anymore, so please feel free to look at the docs in the SourceForge site: https://sourceforge.net/projects/ocr...files/devdocs/ ]

    I would recommend getting guidance from your tutors and lecturers for now.
    While I consider the thread to be an example good practice it is really just the result of my experience. Your tutors should be able to draw on the entire industry for their advice.
    Last edited by ocratato; 18th March 2016 at 12:52 AM.

  14. #74
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    2,682

    Re: VICI: A Software Development Project

    Phase 4 completed

    I have just published the latest release of VICI: https://sourceforge.net/projects/ocratato-vici/

    This introduces the vici-admin program which will be used to prepare commands so that they are (hopefully) a bit easier for the novice to understand.

    I have also introduced the user guide, which at the moment only describes the vici-admin program and some installation reference material. I will add to this as the development continues.

    There is an automated test version of the program which, unfortunately, is not as complete as I had initially intended.
    I ran into a problem with the GUI test harness in that when a dialog box is displayed control is passed to a separate thread and the hence the test harness is unable to generate any interactions - this is not good for an automated test.
    For now the answer is to avoid dialog boxes

    I am quite keen to start on the next phase - it allows the user to search for key words in the descriptions for our prepared commands, the man pages, the desktop files, and even the rpm database. The user can then tag and classify the commands - eg put all the text processing commands under one search tag.

  15. #75
    Join Date
    Oct 2010
    Location
    Canberra
    Posts
    2,682

    Re: VICI: A Software Development Project

    This is getting disappointing: Another problem with my GUI test harness has emerged.

    The test harness runs a shell script to generate the commands to apply to the widgets. This allows me to quickly tweak the commands without having to recompile. This script is launched by my code, and that code includes the signal handling for catching the termination of a child process.

    In my current part of the VICI project I am using Qt's QProcess class to manage several child processes as this allows good integration with the GUI components. I assume (and have seen some source code) that indicates that Qt is also handling the signals for child process exits, as it should.

    Unfortunately you can't have two signal handlers for the same signal. Since my signal handler is installed after the Qt one I thought I might be able to save theirs and call it if the child process wasn't one that I had started. After a fair amount of reworking of the signal handling code to implement this, it still doesn't work

    For now I will revert to hand testing. Later I will try to get to the bottom of this, or use QProcess in the test harness rather than my process handler.

Page 5 of 8 FirstFirst ... 3 4 5 6 7 ... LastLast

Similar Threads

  1. Web Development Software
    By Pepperonie in forum Using Fedora
    Replies: 2
    Last Post: 5th May 2007, 10:56 PM
  2. Development software for Linux
    By jo3 in forum Using Fedora
    Replies: 9
    Last Post: 15th June 2006, 03:28 PM
  3. Software Development
    By handshakeit in forum Using Fedora
    Replies: 0
    Last Post: 5th October 2005, 08:40 AM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •