Page MenuHomeFreeBSD

64bit CentOS 6.6 ports
AbandonedPublic

Authored by xmj on Feb 1 2015, 12:38 AM.

Details

Summary

This commit converts all of the CentOS 6.6 ports to support 32 or 64bit versions
It renames pkg-plist to pkg-plist.i686 for the existing files, and creates pkg-plist.x86_64
the original distinfo was already called distinfo.i686 so just creates distinfo.x86_64

To under with the 64bit version of CentOS instead of 32, in /etc/make.conf:
OVERRIDE_LINUX_BASE_PORT=c6_64

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Linters Available
Unit
No Unit Test Coverage

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
allanjude edited edge metadata.Feb 1 2015, 12:55 AM
allanjude updated this revision to Diff 3571.

Update PORTREVISION for modified Makefiles

xmj added inline comments.Feb 1 2015, 7:55 PM
Mk/bsd.linux-rpm.mk
161

Is this actually used anywhere?

Mk/bsd.port.mk
1743

What's the reason for moving this block from bsd.linux-rpm.mk ?

1747

Duplicate if-block. Can you abstract it outside, so that it'll work for both CentOS bases/ports independent of architecture?

1751

When is this part ever executed?

emulators/linux_base-c6/Makefile
191

You could rewrite that to
@${CHMOD} -R u+rwX ${WRKDIR}/lib64 ${WRKDIR/usr/lib64
and remove the else clause.

228–229

Please remove this comment.

236–237

Please remove this comment.

emulators/linux_base-c6/pkg-message
11

Let's keep this line removed. The experimental part with the 64bit stuff is most likely the linuxulator, not the ports itself.

allanjude added inline comments.Feb 1 2015, 8:03 PM
Mk/bsd.linux-rpm.mk
161

no idea, I didn't change that line

Mk/bsd.port.mk
1743

linux-rpm.mk is only included if the port has USE_LINUX_RPM=yes

Some other ports, like linux-c6, the base it self, flash, etc, needed the variables like LINUX_RPM_ARCH and LINUX_REPO_ARCH even though they don't use the RPM system (which changes the distfiles etc).

This will also be required for stuff like a 64bit version of the linux-oracle-jdk port

1751

yes, most ports set USE_LINUX to c6, not c6_64

This block actually switches them if 'override' is set.

This might be a place where it should be OVERRIDE_LINUX_NONBASE_PORTS

emulators/linux_base-c6/Makefile
191

good idea

emulators/linux_base-c6/pkg-message
11

This likely needs changing a bit. If you have lemul then the default osrelease is 2.6.32

eadler edited edge metadata.Jun 6 2015, 4:08 AM

given the number of files in this diff I may have missed some flaw, but overall it seems reasonable. I'd prefer to see the final diff before I approve with emulation hat.

Mk/bsd.linux-apps.mk
46

I am not following this change though I think I'm missing something.

Mk/bsd.linux-rpm.mk
88–100

Why is this hidden under PACKAGE_BUILDING?

161

If this isn't used, please remove it in this cleanup. It may be worthwhile just to grep the tree for its use. If it is used outside of this file, it must be renamed.

168

Is there a variable containing the list of allowed values rather than replicating them into the IGNORE?

Mk/bsd.port.mk
1747

+1 to what @xmj said

allanjude edited edge metadata.Jun 6 2015, 5:06 AM
allanjude updated this revision to Diff 5979.

Major update, catched up to the current ports tree

antoine added a subscriber: antoine.Jun 6 2015, 6:13 AM

Is this up to date?

I have the following errors using arc patch:

Index: www/linux-c6-flashplugin11/distinfo.i686
===================================================================
--- www/linux-c6-flashplugin11/distinfo.i686
+++ www/linux-c6-flashplugin11/distinfo.i686

Patching file www/linux-c6-flashplugin11/distinfo.i686 using Plan A...
Reversed (or previously applied) patch detected! Assume -R? [y]

...

Index: java/linux-oracle-jre18_64/pkg-plist
===================================================================
--- java/linux-oracle-jre18_64/pkg-plist
+++ java/linux-oracle-jre18_64/pkg-plist

File to patch:
...

Also, the downloadable diff in web interface doesn't show some pkg-plist.i686 files.

Please open a ports infrastructure PR to request an exp-run, and attach a patch generated with "svn diff --git"

Also a question, is it possible to install, say, both gnutls-2.8.5-14.el6_5.i686 and gnutls-2.8.5-14.el6_5.x86_64 on the same centos host?

allanjude updated this revision to Diff 6007.Jun 7 2015, 4:54 AM

Update with cleanups after running i686 and x86_64 poudriere test runs

xmj edited edge metadata.Jun 13 2015, 8:31 AM
xmj requested changes to this revision.

It's probably a good idea to go over pretty much the whole stack of bsd.linux-*.mk files/entries and throw out everything that's not needed anymore, and simplify everything that can be simplified.

Otherwise we're about to make them even more unmaintainable as they currently are (I blame myself, solar flares and legacy from previous revisions).

Mk/bsd.linux-apps.mk
46

Setting LINUX_BASEPORT_NAME to -${OVERRIDE_LINUX_NONBASE_PORTS} here (line 46),

setting OVERRIDE_LINUX_NONBASE_PORTS to c6_64 in make.conf

and trying to build 64bit ports will break on
bsd.linux-apps.mk lines following this pattern:

${foo}_PORT= ${PORTSDIR}/${bar}/linux${LINUX_BASEPORT_NAME}-${baz}

Mk/bsd.linux-rpm.mk
162–164

No need for setting USE_LINUX to c6 if it's tested one line above.

Mk/bsd.port.mk
1744

USE_LINUX= c6_64 should be IGNORE'd if the destination ARCH is i386.

This revision now requires changes to proceed.Jun 13 2015, 8:31 AM
allanjude edited edge metadata.Jun 13 2015, 6:54 PM
allanjude marked 5 inline comments as done.
allanjude updated this revision to Diff 6174.

Update live from BSDCan

I have reviewed this completely (read-only, I haven't tested anything) now (Essen Hackathon 2015), and apart from the comment about the remvoed IGNORE part which should be handled, I think the patch is OK.
Is this tested to not break the 32bit version of the linux base ports (c6 & f10)?
If it doesn't break -- specially the case where a port wants c6 but the override is set to f10 (= the IGNORE part of my comments) -- I would say go ahead and commit it (it will not hurt to have some rough edges in the 64bit parts... if any, we can fix them as they show up).

Mk/bsd.linux-rpm.mk
64

Why is all the above removed, is it handled in another place (which one)? I can not find a place where the IGNORE part is done after this patch.

emulators/linux_base-c6/Makefile
228–229

As this is a clean-up and not related to c6_64, I would assume the action is optional for a commit of the c6_64 parts.

emulators/linux_base-c6/pkg-message
11

Changing this can be done any time, before or after committing the c6_64 parts.

Answer a question from eadler.

Mk/bsd.linux-rpm.mk
88–100

We don't need the srpms to install a port (end-user), but we are required to provide the (L)GPLed source on CDs and our mirrors, as such we fetch it when we do a pacakge build on the FreeBSD cluster -> automatically included in the upload to the mirrors.

I improved some parts of the code (see individual comments).
As it seems phabricator is build for more colaboration between the people besides 1 submitter and several no-patch-modify-rights reviewers. It doens't allow me to upload my diff.

I will (later today or tomorrow) test the 32 bit side. If nothing breaks I may commit this (except there are objections off course). A few minor issues we may have overlooked in the 64bit case will not hurt (an user has to override the default, so he already knows that he is in the there-may-be-dragons area).

Mk/bsd.linux-rpm.mk
64

In my local copy of this patch I added the IGNORE part again.

emulators/linux_base-c6/pkg-message
11

In my local copy of the patch I changed this to:
-You should enable Linux mode with the linux_enable variable of rc.conf(5)
-and use compat.linux.osrelease=2.6.18 in sysctl.conf(5).
+You should enable Linux mode with the linux_enable variable of rc.conf(5).
+Depending on the version of FreeBSD you are using you may have to increase
+the emulated linux version via compat.linux.osrelease=2.6.18 in
+sysctl.conf(5). Check via "sysctl compat.linux.osrelease" that it shows a
+lower version number before setting it.

I improved some parts of the code (see individual comments).
As it seems phabricator is build for more colaboration between the people besides 1 submitter and several no-patch-modify-rights reviewers. It doens't allow me to upload my diff.

At the very bottom of the diff, where the comments box is, one of the options in the 'action' dropdown is to 'commandeer' the differential. Once you do this, you will be able to upload your patches.

Mk/bsd.linux-apps.mk
46

There is 1 port, emulators/linux_base-c6

Depending on some settings, it installs i686 ports, called -c6, or x86_64 ports, called -c6_64
Either way, the PORT name stays the same.

Part of the confusion may be mine as well. I am not sure what the difference is supposed to be between OVERRIDE_LINUX_NONBASE_PORTS and OVERRIDE_LINUX_BASE_PORTS

Also, I am not sure what the best way will be to determine when to use the _64 ports. Now that lemul is merged, if we get the _64 ports to also install the 32bit versions of everything, we can default to _64 if arch == amd64.

Mk/bsd.linux-rpm.mk
88–100

this was already here. We only fetch the source files if we are building a package. Not entirely sure why.

88–100

because GPL

160

The default is now C6, this is broken (not by me), but is never encountered because it is inside if AUTOMATIC_PLIST

161

USE_LINUX=f10 is used for all of the linux-f10-* ports

Mk/bsd.port.mk
1722

this can probably be combined into a single if, but it'd be really long

netchild commandeered this revision.

After agreement with Alain: comandeer this revision.

netchild edited edge metadata.Jul 26 2015, 12:42 PM
netchild updated this revision to Diff 7342.
  • add back removed IGNORE
  • remove one IGNORE message (64bit install on non-64bit system... somehow it triggered on my 64bit system)
  • improve pk-message of the base port
  • remove a few outdated comments
  • fix the default in AUTOMATIC_PLIST
netchild updated this revision to Diff 7399.Jul 27 2015, 8:12 PM

Change parts which may have caused the index breakage.

pkubaj added a subscriber: pkubaj.Jul 27 2015, 9:23 PM
pkubaj removed a subscriber: pkubaj.
Index: devel/linux-c6-qt47/distinfo.i686
===================================================================
--- devel/linux-c6-qt47/distinfo.i686
+++ devel/linux-c6-qt47/distinfo.i686

File to patch:


ls: /usr/ports/devel/linux-c6-qt47/distinfo.i686: No such file or directory

That's where patching the current ports tree fails. I've tried to fix it, but it seems to have been generated from your previous patched ports tree.

netchild updated this revision to Diff 7439.Jul 28 2015, 7:57 PM

Fix sytax for fmake.

That's where patching the current ports tree fails. I've tried to fix it, but it seems to have been generated from your previous patched ports tree.

I assume you downloaded the diff from the website and appllied it via patch: I noticed that the diff has the removal of files, but not the addition of files when ther was a "svn move". If you use the arc tool to download and apply the changes (I think this requires svn and a ports tree which is checked out via svn), you will get all the changes.

allanjude edited edge metadata.Jul 28 2015, 8:21 PM

Yes, I am not sure if arc uses the flag or not, but if done manually,
you'd specify the svn '--show-copies-as-adds' flag to solve this.

emaste added a subscriber: emaste.Jul 30 2015, 2:28 PM

Thanks, it works now, although arcanist searched specifically for svn binary. I know I can compile base with WITH_SVN=yes, but didn't want to recompile on VM, so I had to install devel/subversion. Is there no way to use svn from base without recompiling with WITH_SVN=?

In D1746#65816, @pkubaj_riseup.net wrote:

Thanks, it works now, although arcanist searched specifically for svn binary. I know I can compile base with WITH_SVN=yes, but didn't want to recompile on VM, so I had to install devel/subversion. Is there no way to use svn from base without recompiling with WITH_SVN=?

I imagine you could alias svn to point to svnlite

netchild edited edge metadata.Aug 2 2015, 10:03 AM
netchild updated this revision to Diff 7579.

Fix plist for most F10 ports.

pkubaj added a comment.Aug 3 2015, 7:04 PM

I'm not sure whether I can send actual bug reports here, or this is only for stylistic bugs in patches, so pardon my intrusion, if bugs don't go here :)

I'm trying to test whether Linux amd64 version of "Faster than Light" game works. i386 version works all right on 10.1-RELEASE using old Linux layer, it also worked with new layer (only i386) when lemul was on a separate branch. Now, when I run either version (after running brandelf -t Linux $binary) I get "ELF binary type "3" not known. I will also try with the default ports version later.

netchild updated this revision to Diff 7655.Aug 4 2015, 7:48 PM

Fix linux-nero and linux-f10-flashplugin.

netchild updated this revision to Diff 7691.Aug 5 2015, 8:20 PM

Fix regressions in linux_base-c6 ports.

xmj edited reviewers, added: netchild; removed: xmj.Aug 18 2015, 12:35 PM
xmj commandeered this revision.

Commandeering for CentOS 6.7 updates

emulators/linux_base-c6/Makefile
176–177

We could consider removing this whole if-block, as the current implementation seems to not have any effect on pkg names at all (including UNIQUENAME, which is the only thing LATEST_LINK seems currently used for).

xmj@mx12:~/repos/ports-svnssh/Mk$ grep LATEST_LINK *                                        -- INSERT --
bsd.port.mk:#                             this is set to ${LATEST_LINK} when LATEST_LINK is set,
bsd.port.mk:# LATEST_LINK       - Install the "Latest" link for the package as ___.  Define
bsd.port.mk:.if defined(LATEST_LINK)
bsd.port.mk:UNIQUENAME?=        ${LATEST_LINK}
bsd.port.mk:LATEST_LINK?=               ${PKGBASE}
bsd.port.mk:PKGLATESTFILE=              ${PKGLATESTREPOSITORY}/${LATEST_LINK}${PKG_SUFX}

cd ..

xmj@mx12:~/repos/ports-svnssh$ make -V UNIQUENAME -C emulators/linux_base-c6
linux_base-c6
xmj@mx12:~/repos/ports-svnssh$ make -V PKGNAME -C emulators/linux_base-c6
linux_base-c6-6.6_4
xmj@mx12:~/repos/ports-svnssh$ make -V ARCH -C emulators/linux_base-c6
i386
make -V LATEST_LINK -C emulators/linux_base-c6
linux32_base-c6

That is on an amd64 install.

xmj abandoned this revision.Aug 19 2015, 11:33 AM

Actually, this patch was merged by netchild@ in rP393817