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

Continuous Integration #1

Open
wants to merge 72 commits into
base: master
Choose a base branch
from
Open

Continuous Integration #1

wants to merge 72 commits into from

Conversation

sgeto
Copy link
Owner

@sgeto sgeto commented Apr 28, 2017

TODO:

  • Travis: add MinGW
  • Major: Travis: "make distcheck" must succeed on any platforms/matrix
  • Travis: add PPA's with higher versions of Doxygen, latex and co.
  • Appveyor: Appveyor is lying. Batch build currently errors
  • Appveyor: add MinGW (via Msys2?)
  • Continuously adjust to changes on major branch
  • Travis: Appveyor: Test codecov
  • Travis: Appveyor: Add and test coverity scan
  • Travis: Appveyor: Upload/Send tar ball zip ball and binaries to myself and use as release.
  • Major: Travis: Appveyor: Lua: after fixing/updating Lua bindings, upload/send to... not sure yet... as release.
  • Travis: Appveyor: Lua: replace default libdumpnet with my fork
  • Appveyor: limit check scope to Master man CI branch
  • add Jenkins

sgeto added 30 commits November 17, 2016 04:27
improved MSVC x64 support suggested by robertolarcher (Pull Request libnet#58), README.win32 adjustments, added (Linux only) Travis test yml as well as other tiny fixes.
last chance, appveyor1
msvcbuild.bat now builds libnet from ANY cmd/powershell not just the Developer Command Prompt
goto %1 didn't apply anymore...
batch file now creates "lib" folder, libs have version number and other minor changes; lua bindings doesn't work (yet)
Samples are in need of additional linking (-lws2_32, -lpcap) and are complaining about code in libnet_resolve.c, libnet_write.c and libnet_raw.c. Not sure how concerning that is... I better get my pcap manual :-D
Libnet now builds gracefully with MinGW (including samples). There's a lot of fine tuning to be done and it needs testing on my other MinGW distros (including cross). This push is therefore just to see if Linux, Mac and Windows (MSVC) are still happy.
the build system should be up to the latest standards with this one. Except for docs, that's up next...
still ugly, but at least it works again
This was suprisingly easy. Hail clang!
On Linux at least, most if not all ethertypes defined in libnet-headers.h are also defined in the compiler's standard include files (net/ethertypes.h, linux/if_ether.h and maybe others too)
That's not a problem because ethertypes are a IEEE 802.3 standard. But for some reason, the Hex letter digits in libnet-headers.h are all lowercase but those in the standard include files are all uppercase (as they are throughout all RFCs(see RFC7042 and RFC2464). This harmless macro redefinition causes clang (and maybe others too) to go berserk.
Maybe it's time to let the standard include files handle ethertypes instead of libnet-headers.h. For now, I am just going to add diagnostic pragmas to the conflicting ethertypes to suppress macro redefinition warnings caused this way.
Even though libnet.h is always regenerated by configure, having it around still has some benefits (with respect to documentation)

- Docs can be created independently from building (by running doxygen doc/libnet.doxygen.conf)

- Docs can be hosted from within the repo (via codedocs.xyz)
yet another attempt to come after Travis build error by updating autoconf and libnet before building
sgeto added 20 commits April 9, 2017 16:03
Having added diagnostic pragmas around them for clang made gcc warn about unknown pragmas. 
I'm not going to follow this rabbit hole any further... they're uppercase now until I get rid of them altogether.
a4wide? you kidding me?
- the include directory wasn't a fully qualified path
- replaced hard-coded shebang
- added --prefix option
- added man page notice
- added executable permissions
Just like all other ethertypes. 
Sitting there without it was what was causing the boatloads of macro redefinition warnings (see commit 64d27b and eb76d2)
I should have though of that earlier...
It has been modified for libnet and should therefore always take precedence over the one shipped with the autoconf-archive (or bad things will happen)
Among many many other tiny changes:

- updated to Doxygen 1.8.14 
- stripped Doxyfile from all comments
- HTML: Disabled every option that would require javascript
- HTML: Custom Header and Footer (because me noo like javascript)
- HTML: Custom CSS stylesheet (because libnet got style)
- HTML: Change HTML output folder to "api" (because it's not like they're talking about anything else)
- Enabled WARN_IF_UNDOCUMENTED (because everything should be documented)
- Exclude headers that Doxygen can't understand (yet) or that don't say anything meaningful anyways (work in progress)
- Tuned the Preprocessor (work in progress)
- Tuned dot tool output
- Added "standalone" version to libnet's root directory (mostly for CodeDocs.xyz)
if none is specified of course
This, among other things, translates to:

- deleting the useless and misleading man page for libnet.h generated by Doxygen
- adding two new "handcrafted" man pages: libnet and libnet-config
- removing all underscore prefixed items
- renaming .h.3-suffixes to simply .3
- Changing the internal name of the man pages to all UPPERCASE
- Adjusting version string 
- Changing the title
- Removing both the path and the ".h" extension from internal name
- adding a few more sections (Author, See also, Bugs, and Copyright) to the end of all man pages generated by Doxygen
- Adding a shell script that performs all above mentioned steps (and more) during build. Long live (GNU) sed...
it terrible but at least it's there
- added a doxygen specific ifndef around the messy include block to exclude them from the the docs. (See doc/TODO: "Prune the include list in libnet.h.in...")

- replace main page section with "details" about libnet.h. leeel

- added indication that libnet.h is created from libnet.h.in

- rearranged includes

- on windows , stdint.h in now only searched and included from standard include directories. Adding /Iwin32 to MYCOMPILE in the batch file later on should be enough for cl to get the message.

- removed empty #if !(__linux__) && !(__WIN32__) && !(__APPLE__) &&... block from 5d63956
not sure why it had been...
Makefile.am got pretty crowded. I should divide it into sections...
Setting up continues integration will from now on happen in a separate branch
For reasons that are currently beyond me, config.h must be added to EXTRA_DIST or "make distcheck" fails.
This is necessary for MSVC users, "make distcheck" and those who want to build just the docs.
sam-github pushed a commit that referenced this pull request Jun 5, 2018
sam-github pushed a commit that referenced this pull request Jun 5, 2018
@sgeto sgeto force-pushed the master branch 3 times, most recently from 396ea19 to 124cd4d Compare June 7, 2018 18:26
sgeto added a commit that referenced this pull request Jun 9, 2018
sgeto added a commit that referenced this pull request Jun 9, 2018
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

Successfully merging this pull request may close these issues.

1 participant